1.爆错注入 什么情况想能使用报错注入------------页面返回连接错误信息 常用函数 updatexml()if...floorextractvalue updatexml(,concat() 在concat查询语句后面添加一个标识符,如0x23 updatexml(,concat() 因为有的时候报错信息会设置长度限制,添加标识符可以避免显示不完全 获取数据库信息 http://10.1.2.5:10631/sqli/Less-1/?id=1' and updatexml(1,conc…
0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利用报错注入的方式来进行SQL注入了.这篇文章会讲解一下报错注入的产生原理和利用案例. 0x01 十种报错注入 这十种方式在这里不多讲了,详情移步https://www.cnblogs.com/wocalieshenmegui/p/5917967.html.平时我们最常用到的三种报错注入方式分别是:f…
知识点: SQL注入中用到的Concat函数详解    http://www.sohu.com/a/219966085_689961 http分割注入 直接根据提示,提交post请求的用户名和密码 结果显示 换成 username=1'&password=1 就说我有sql语法错误,说明这题是要考虑sql注入的,然后然后用burpsuite检测许多sql相关的词,看哪些词被过滤了 bp爆破测试教程可以参考这一篇https://blog.csdn.net/weixin_38948797/artic…
SQL注入的本质:就是将用户输入的数据当作代码带入执行. 注入条件: 1.用户能控制输入 2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行 首先检查是否存在注入点 Rank1: 构造语句 ?id=1 and 1=1 没有报错 ?id=1 and 1=2 也没有显示错误,检查是否被过滤了 ?id=1' and 1=1 出现错误,说明这里被单引号过滤掉了 ?id=1' and 1=1 --+ 回显正确 存在注入 Rank2: ?id=1 and 1=1 回显正确 ?id=1 and 1=2…
1.floor()函数 报错原因是 报错的原因是因为rand()函数在查询的时候会执行一次,插入的时候还会执行一次.这就是整个语句报错的关键 前面说过floor(rand(0)*2) 前六位是0110110 group by x先建立一个空表,用于分组.然后进行分组查询,第一次rand()执行,查询的结果是0,因为是空表所以插入这条,而插入的时候rand()又执行了一次,所以表中的结果就是 第一次执行完,接着执行rand()的值为1,因为表中存在,所以加1,表中结果成为 到了第三次执行rand(…
前提知识 数据库:就是将大量数据把保存起来,通过计算机加工而成的可以高效访问数据库的数据集合数据库结构:库:就是一堆表组成的数据集合表:类似 Excel,由行和列组成的二维表字段:表中的列称为字段记录:表中的行称为记录单元格:行和列相交的地方称为单元格在数据库里有一个系统库:information_schema在它里面有个存着所有库名的表:schemata schema_name 库名 在它里面有个存着所有表名的表:tables表名 table_schema 表属于库 table_name  表…
打开靶机 payload 1 Union select count(*),concat((查询语句),0x26,floor(rand(0)*2))x from information_schema.columns group by x; payload拆分讲解 1 count():count()函数返回匹配指定条件的行数.count(*)函数返回表中的记录数 2 floor():floor:函数是用来向下取整呢个的,相当于去掉小数部分 3 rand():rand()是随机取(0,1)中的一个数,…
例子:www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1[1]首先爆版本:http://www.kfgtfcj.gov.cn/lzygg/Zixun_show.aspx?id=1 and @@version>0 原因:@@version是mssql 的全局变量,如果我们把它写成这样 and @@version>0 那个后面的mssql就会强行把@@version 强行转换成数字,但是失败,所以就会将数据库信息暴露出来同样:通过@@SERVERNAME:爆…
盲注定义: 有时目标存在注入,但在页面上没有任何回显,此时,我们需要利用一些方法进行判断或者尝试得到数据,这个过程称之为盲注. 布尔盲注: 布尔盲注只有true跟false,也就是说它根据你的注入信息返回true和false两个,而不是返回报错信息 时间盲注: 页面返回只有一种,true,不管输入任何信息,返回信息都会按照正常来处理,加入特定的时间函数,通过查看web页面返回的时间差来查看是否存在时间盲注或语句是否正确 布尔盲注常用 length() 函数 返回字符串的长度?id=1 and l…
1.证明存在sql注入,根据这个报错语句,,有'  有% 2.payload  闭合语句 %' or (select extractvalue("anything",concat('~',( sql语句)))) or title like '% 1…