猜测分析
在测试web端按钮时,疑似发现ping下面的框可以命令执行
具体分析
先直接拼接命令看看是不是能执行成功
这里发现并没有成功返回了404界面,所以思考是不是有什么过滤,看一下页面是哪里来的先
在httpd这个二进制文件中
这里先抓个包,看看传了什么参数
destIP是我们输入的IP,但是去IDA里面搜索这个关键字找不到存在的地方
于是再看到SystemCmd这个参数,里面也有我们输入的IP,于是去查了一下SystemCmd这个关键字
发现第三个交叉引用到
想看一下伪代码报错了
复制41FFFC这个地址,G输入进去跳转到这个地址,把这个地址D转换为数据
这样子就可以看到伪代码了,伪代码发现过滤了6种字符,也确定了是通过systemcmd这个来传参的
那么找到了过滤的字符,尝试绕过,在web端尝试输出192.168.1.1$(ps>jiawen.asp)
执行成功
我们可以给命令执行的时候$(ps>jiawen.asp)用http://192.168.1.1/jiawen.asp
直接请求这个页面查看是否执行成功
至于为什么是.asp呢,这里之前命令注入的时候创建的是.txt的文件,去直接请求.txt发现返回的是404的界面,所以根据猜测应该是有什么规则,去搜索有没有什么规则文件也并没有找到,于是猜测也是集成写在了httpd二进制文件中,于是在IDA里面搜索**.asp* 就发现了
httpd这个二进制文件中存在一些规则,使它只能在web端访问这些规则的界面
建议修复方案
建议把 $
以及 `
过滤掉