记一次绕过安全狗的渗透
0x01:前言
偶然得到一个站,记录一下渗透过程
0x02:信息收集
正常显示页面,这里我们可以得到的信息有:
1、网站是php的,显而易见。
2、web服务器为IIS7.5,平台为windows,如下。
随便输入fuzz一下,加个单引号
报错了,而且还将单引号转义了,可能存在注入
继续测试注入类型:payload:' and 'a' = 'a
熟悉的界面那么现在我们可以确认的是:
1、单引号被转义了,经过测试后双引号和反斜杠也被转义了,但是空格未被转义,猜测后端代码使用了 mysql_real_escape_string() 函数对id参数进行过滤
2、网站使用了安全狗,版本尚未明确
0x03:绕过安全狗
安全狗对于关键字过滤的十分严格,大小写、双写、符号都无法绕过
那继续尝试内联包裹关键字绕过
很不幸也被ban了想到以前大佬有50001这种操作,那继续payload:order/*!50001*/by/*!50001*/ 16
很不幸又被ban了,看来安全狗版本挺新的。
参考内联50001的原理,我们可以使用其他字符对其进行扰乱。
比如/*!80000aaa*/
成功绕过了安全狗
0x04:注入
接下来查询列数:
遍历可回显位置
可见 3和7是可回显的位置
查看当前用户,当前数据库:
继续注入所有数据库名
很高兴的是安全狗只waf掉了select 所以我也不用打那么多的 /*!80000aaa*/
既然只有两个数据库那就好说了接下来梭哈即可
查表
查字段 查数据 md5跑一跑看看能不能出来 不得不说 <https://www.somd5.com/> 很给力!0x05:获得webshell
得到了后台账号密码后,尝试寻找后台路径,上御剑
算了吧,看看网站也没有什么可以信息泄露的
结果找到了这个,既然知道了cms,不妨Google一波但是很遗憾Google没找着相关信息,但是在百度找到了利用点
...于是进去看看(这个不是漏洞站的地址,是百度同类cms出来的结果)
试一试这个路径 好吧,真的进来了看看有什么上传点,找到一处上传点
尝试直接上传php,失败;上传txt,也失败;00截断,也失败,尝试了各种姿势后,无果... 后来怎么绕过的呢,由于安全狗对于http头字段: Content-Disposition: 处理的不是很好, 当长度增加到48930的时候,安全狗的上传防御就失效了。结果如下图: 所以这里对该字段进行溢出,成功上传php文件。但是,安全狗依然会对上传的内容进行过滤,杀了我n多小马,
终于用压箱底绕过了安全狗的疯咬。
上菜刀 秒挂,忽然想起来安全狗会对菜刀的流量进行waf。既然被waf,那我就继续绕
众所周知,菜刀的流量是固定格式的,即: x=@eval(base64_decode($_POST[123]));&123=ZWNobyhgY2F0IC9mbGFnLnR4dGApOw==
那么狗有可能通过正则过滤了菜刀的关键语句,可能是eval函数,那改成assert试一试,但是不回显数据了,看来还是得用eval,后来下载了个安全狗试了试才知道安全狗过滤掉的是@eval(base64_decode($_POST[123]));
那变异一下关键字就行了,将@eval(base64_decode($_POST[123]));base64编码,然后再解一次base64,即:x=@eval(base64_decode(QGV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbMTIzXSkpOw));&123=ZWNobyhgd2hvYW1pYCk7
但是,成功是成功了,本地确实复现了,但是这服务器依然不回显数据。尝试试用本地php中转菜刀流量,依然以失败告终。。。
看来小马行不通了。那既然小马不行,上传大马试一试
正好前几天从tools混了一个大佬的大马,直接修改post数据上传,成功!
访问http://www.xxxxxx.cn/product/images/1563181161.php
扫描一下端口:
3389被关了,mysql没爆出密码,尝试反弹shellnc可以弹回来,但是无法执行命令,各位大佬有什么思路也可以赐教一下小弟,技术有限,也只能做到这里了。
自评 TCV:1
评论58次
一开始报错语句就能看到是数字型了,菜刀不行,可以试试上个冰蝎,然后iis中间件,php不行,也可以上aspx,或者msf生成一个马,让他上线
安全狗写规则人就像个ZZ
不错,学xi了,回去试试
老哥,请教一下,菜刀的流量怎么去改?一直不是很明白,把菜刀重新逆一边吗?
一开始报错语句就能看到是数字型了,菜刀不行,可以试试上个冰蝎,然后iis中间件,php不行,也可以上aspx,或者msf生成一个马,让他上线
确实值得学xi,感谢分享
你们这些人,真是眼尖,啥地方漏洞清清楚楚
厉害了,向大佬学xi
/*!80000aaa*/ 这和50001有啥区别吗 大佬可以解答下 吗
/*!50000*/的意思就是说如果数据库版本大于5.00.01,那么注释内的语句就会执行。 例:/*!50001 select * from test */;如果你的数据库是5.4.XX,就会执行select语句。
一遇到狗就头疼,现在有思路了,谢谢大佬
学xi了,感谢分享经验
按照步骤测试用蚁剑,貌似也没有反应,楼主可以试试
楼主可以试试用蚁剑的不base64编码
绕过狗的方法记录下来了。
1433找密码吧,或者简单的弱口令尝试
内联注释那里学到了
为啥windows服务器会弹一个root。。。疑问
能进去的话看看顺便狗是啥版本,竟然不咬information_schema,神奇
我觉得asp得马可以
尝试绕过disable_functions执行命令,shell找root、sa的密码看看能否提权,再看看有没有第三方软件可以利用的
其实并没有反弹回来,这个马反弹的banner都是这样的,你先看看phpinfo里面的disable_functions 都禁止了什么函数