刷题记录-[BUUCTF 2018]Online Tool

一拿到题目就看见这些关键词,看见http_x_forwarded_for猜想会不会http头部注入啥的,但是尝试了直接pass,又看见get方式传入host参数,和system执行nmap部分,傻傻的觉得会不会linux的多语句执行,哇,真滴笨啊我,试了好多遍都不行,看了大佬的解析才懂一点

刷题记录-[BUUCTF 2018]Online Tool_第1张图片

其中关键函数是escapeshellarg()和escapeshellcmd()

分别意思为:

escapeshellarg:把字符串转码成可以在shell命令里使用的参数,将单引号进行转义,转义之后,再在左右加单引号

escapeshellcmd:把传入的可以字符串进行转义

可以看见,虽然给转义了但是1这个字符串还是可以闭合的,前面两个闭合,\后面一个不算,因为被转义了,最后面两个又闭合了

刷题记录-[BUUCTF 2018]Online Tool_第2张图片

再加入escapeshellcmd函数查看,发现后面两个都被转义了,但是!!!前面两个闭合了没有被转义,这次如果自己测试一定一定一定!!!!要在网页的php中弄,自己的idea测试了发现是^来转义看的头疼

刷题记录-[BUUCTF 2018]Online Tool_第3张图片

当然知识点不止这些,nmap -oG是可以将扫描的内容放到文件中,一下就清晰了,经过两个函数引号依旧可以闭合,nmap可以将扫描的内容放入文件中及可以将一句话木马放入文件中,再用蚁剑连接,所以构成payload

' -oG 1.php'

扫描成功,蚁剑连接,这里不太清楚为什么要用我这边标红的地方当作目录,可能是我经验不足

刷题记录-[BUUCTF 2018]Online Tool_第4张图片

刷题记录-[BUUCTF 2018]Online Tool_第5张图片

刷题记录-[BUUCTF 2018]Online Tool_第6张图片

获取flag

刷题记录-[BUUCTF 2018]Online Tool_第7张图片

总结:escapeshellarg可以将字符串变为可执行内容,而escapeshellcmd会将可执行内容转义,但是两者一起使用会造成逻辑漏洞,可以用两个引号绕过

nmap可以写入内容到文件中,参数-oG可以将扫描内容放到文件中

参考资料:

[BUUCTF 2018]Online Tool-CSDN博客

你可能感兴趣的:(web安全)