确定了SQL注入漏洞的存在,作为测试人员可以将这个漏洞报给开发人员进行修复,但作为安全爱好者我们可以做的更多。最基本的方式是使用简单的SQL 语句去猜解表名及字段名,确认表名的方法可以用and true ,and false 的方式来判断,如:and (select count(*) from user)>0 返回为空 证明user表存在,返回与原始页面一致,则证明不存在;还有确认字段的方法,如:and (select count(username) from user)>0;我们来重点说说确认字段值的方法,这块挺好玩的。
咱们以字符型来举个例子,假如有username字段,首先你要知道字段值的长度是多少,用如下语句:
and (select length(username) from users where id=1)=1~10
其次,需要找出每一位上面的字母(a-z A-z 0-9)
and substr ((select usernname from users where id=1),1,1)='a'--'z'
当然也可以用ASCII的方法:
and (select ASCII(substr (username,1,1)) from users where id=1)=0~128
最后简单说说跨站脚本的安全隐患,跨站脚本攻击(Cross Site Scripting,简称XSS)是一种经常出现在Web应用中的计算机安全漏洞,它允许恶意Web用户将代码植入到提供给其它用户使用的页面中,用户在观看网页时恶意脚本就会执行。这类攻击通过注入 HTML或js等脚本发动,攻击成功后攻击者可以得到私密网页内容和Cookies等,最近几年XSS攻击已经成为最流行的Web攻击方式。