DIR |
您所在的位置:网站首页 › d-link_dir-612密码 › DIR |
首先我们分析网上公开的exp确定漏洞相关组件及payload,之后通过IDA分析研究漏洞是如何触发的,最后在attifyos中进行模拟,验证漏洞。 本次实验的漏洞是某品牌路由器service.cgi远程命令执行漏洞。 Packet storm有exp:https://packetstormsecurity.com/files/145859/dlinkroutersservice-exec.txt 看看exp中的关键信息 大概知道需要访问service.cgi,post请求,payload中有event=checkfw%26 我们先试试看自己能否分析 解压压缩文件 提取得到固件根目录 进入提取的文件夹 看看引发漏洞的cgi文件,其位于htdocs下 是32位mips小端可执行文件 。 接下来使用IDA分析 在main函数中看到 如果main函数判断访问的时候service.cgi就调用servicecgi_main 跟进servicecgi_main 先看一下其交叉引用的图 大概知道漏洞产生的地方了,servicecgi_main-》lxmldbc_system->system 接着跟下去看看 看到其会先判断request method请求方法,处理get和post 但是可以看到其实都是走一样的路径 调用cgibin_parse_request 跟进cgibin_parse_request 会解析content_type,content_length,然后就是解析参数的工作,回到servicecgi_main 我们需要找到调用lxmldbc_system的,而上图中我们发现EVENT,SERVICE会调用 在前面xref from图中看到lxmldbc_sytem会调用system,跟进去看看调用system时有没有一些过滤等防护措施 注意到,lxmldbc_system调用system执行command时没有任何过滤,此处就是引发命令注入的漏洞所在 这样我们就知道如何利用了,在访问时加上EVENT,或者利用SERVICE(加上ACTION字段),然后使用一些常见的方法截断再加上我们的要执行的命令就可以了。注入命令后需要是“&”符号的urlencode编码(%26),因为&在http请求中是请求域分隔符,所以必须做编码转换。在其他分隔符使用时也可以进行urlencode编码 接下来进行复现 fat.py启动 一共会提示3次firmadyne的密码和1次oit的密码,遇到输入firmadyne的密码时候,我们输入firmadyne,遇到输入oit的密码时,我们输入attify123 看一下网卡,待会儿我们抓包时需要用到 接下来启动burp java -jar /home/oit/tools/burpsuite_free_v1.7.23.jar 火狐访问fat.pyt给出的ip 默认命令为空,点击login即可进入 然后开始设置代理 来到burp 打开后先恢复初始设置,如图所示 在火狐处访问192.168.0.1/service.cgi?EVENT=test 此时burp抓到包后修改如图,下图是采用|进行截断 可以看到repeater返回了路径 再试试使用;截断,来执行ls命令 repeater返回了命令执行的结果 下图是使用urldencode编码来截断,%26为& 同样成功了 再试试换行符,其编码为%0a 同样是可以的 前面试的是event,而在ida分析中我们知道serivce也是可以的,接下来看看service的 也是同样的截断思路 在ida分析时我们说过get,post走的路径是一样的,所以这里尝试使用post 现在burp这里把get改为post 可以看到已经成为post了 然后使用event来利用 同样成功了 还可以尝试自己抓包看看,attifyos自带了wireshark 我这里直接给出一个已经抓好的 跟踪tcp流 可以看到返回的相应就是命令执行后的结果 。 参考: https://www.cnvd.org.cn/flaw/show/CNVD-2018-01084 1.https://packetstormsecurity.com/files/145859/dlinkroutersservice-exec.txt |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |