第六关:

点击 click me,构造url:user=1',返回user not found。user=1'',同样。

猜测是数字型注入,构造order by , user=1 order by  X#,得出有5个字段。

然后,user=0 union select 1,2,3,4,5#,说user not found。不是吧。。。。

用username试试吧,user=0 union select 1,username,3,4,5 from level6_users where status=1#

返回如图:

接下来就需要找密码了。用password试了5个位置,没用。想了好长时间,没有啥思路,只能看大佬的writeup了。(参考https://blog.spoock.com/2016/07/25/redtiger-writeup/)

知道了可能是sql二次查询:

1
2
3
4
5
6
7
8
$sql = "select username,password from level6_users where id=1";
$result=mysql_query($sql) or die('<pre>' . mysql_error() . '</pre>' );
$row1 = mysql_fetch_row($result);
#从结果中取出username字段
$username = $row1[1];
$sql2 = "select username,email from level6_users where username="."'".$username."'";

构造payload:user=0 union select 1,admin'union select 1,2,3,password,5 from level6_users where status=1#,3,4,5#    返回 user not found,  哦,fuck。

大佬说转换成16进制,脑子不够用,emmmmmm。

最终payload:user=0 union select 1,0x061646d696e3127756e696f6e2073656c65637420312c322c332c70617373776f72642c352066726f6d206c6576656c365f7573657273207768657265207374617475733d3123,3,4,5#

第七关:

提示如上,过滤了一堆东西,输入一个 ' 试试,报错并且返回sql语句:

思考后,先把括号闭合,然后经过测试,order by 被ban了,而且注释 #  和--  也无效。

order by 可以直接用 union select猜  ,注释 -- ,空格可以用%a0等等替换,构造

payload:')union select 1--%a0, 只能用burp抓包改值,hackbar  post提交不行,不知道为啥,搞了半天没结果。猜测出列数为4。

结果只显示,3和4.之后注入:')union select 1,2,autor,4 from level7_news--%a0

最后得到答案。

第八关:

看到4个输入框,分别输入一次单引号,发现只有email后可以注入,

然后没什么思路了,看了大佬们的操作,猜测后台的语句为:

update table set name='[inputname]',email='[inputemail]',icq='[inputicq]',age='[inputage]' where id=1

update 语句  后边的值会覆盖前边的值,比如:update table set name=1,email=2,name=2.........

此时 name最终是2。

于是我们构造:',name=password,icq='1

得到admin用户的密码。

第九关:

测试发现在text 初添加' 会报错,这里存在注入点。

猜测后台语句为:

insert into tablename(autor,title,text) values('[inputautor]','[inputtitle]','[inputtext]')。

于是构造:

'), ((select username from level9_users limit 1), (select password from level9_users limit 1),'456

得到用户名和密码。参考(https://blog.spoock.com/2016/07/25/redtiger-writeup/).

第十关:

这关和php序列化有关,比较懵。

看源代码,有一串base64加密的东西,解密得到:

a:2:{s:8:"username";s:6:"Monkey";s:8:"password";s:12:"0815password";}

提示只能用TheMaster登录,但是密码不知道,序列化,可以把密码改成布尔值为1.

于是改为:a:2:{s:8:"username";s:9:"TheMaster";s:8:"password";b:1;}

base64加密后提交过关。

Redtiger SQL注入练习(二)的更多相关文章

  1. SQL注入之二次,加解密,DNS等注入

    #sql注入之二次注入 1.注入原理 二次注入可以理解为,构造恶意数据存储在数据库后,恶意数据被读取并进入到了SQL查询语句所导致的注入.恶意数据插入到数据库时被处理的数据又被还原并存储在数据库中,当 ...

  2. SQL注入原理二

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多. 但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候 ,没有对用户输入数据的合法性进行判断,使应用程序存 ...

  3. sql注入总结(二)--2018自我整理

    0x00前言: 继上篇的内容,这章总结下二次注入,python脚本,bypass 上篇sql注入总结(一)--2018自我整理 0x01二次注入: 二次注入的原理是在把非法代码添加进数据库里面存储了, ...

  4. 170605、防止sql注入(二)

    java filter防止sql注入攻击 原理,过滤所有请求中含有非法的字符,例如:, & <  select delete 等关键字,黑客可以利用这些字符进行注入攻击,原理是后台实现使 ...

  5. Redtiger SQL注入练习(一)

    感觉会的东西太少了,以后要多练习,多写博客.要坚持学习,一定不能放弃,为梦想奋斗. redtiger  这个平台早就开始做了,但是才做到第4关.... 第一关: 打开题, 先随便试,后来发现点击 Ca ...

  6. 十七:SQL注入之二次加解密,DNS注入

    加解密,二次,DNSlog注入 注入原理,演示案例,实际应用. less-21关,base64进行解密 encode加密decode解密 cookie处注入 判断加密算法,然后进行注入 less-24 ...

  7. SQL注入篇二------利用burp盲注,post注入,http头注入,利用burpsuit找注入点,宽字节注入

    1.布尔盲注burpsuit的使用 先自己构造好注入语句,利用burpsuit抓包,设置变量,查出想要的信息. 比如----查数据库名的ascii码得到数据库构造好语句 http://123.206. ...

  8. C#防SQL注入代码的实现方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点 ...

  9. sql注入的防护

    一.严格的数据类型 在Java,C#等高级语言中,几乎不存在数字类型注入,而对于PHP,ASP等弱类型语言,就存在了危险. 防御数字型注入相对简单,如果不需要输入字符型数据,则可以用is_numeri ...

随机推荐

  1. ReentrantLock学习

    对于并发工作,你需要某种方式来防止两个任务访问相同的资源,至少在关键阶段不能出现这种冲突情况.防止这种冲突的方法就是当资源被一个任务使用时,在其上加锁.在前面的文章--synchronized学习中, ...

  2. 【WCF系列】(四)WCF客户端怎么消费服务

    WCF客户端怎么消费服务 获取服务绑定协议.绑定和地址:实现方式 SvcUtil方式:SvcUtil.exe是一个命令行工具,位于:C:\Program Files (x86)\Microsoft S ...

  3. msf中exploit的web_delivery模块

    背景:目标设备存在远程文件包含漏洞或者命令注入漏洞,想在目标设备上加载webshell,但不想在目标设备硬盘上留下任何webshell文件信息 解决思路:让目标设备从远端服务器加载webshell代码 ...

  4. [Vue] vue跳转外部链接

    问题 vue 跳转外部链接问题,当跳转的时候会添加在当前地址后面 var url = 'www.baidu.com' //跳转1 window.localtion.href = url //跳转2 w ...

  5. Haskell复习笔记(二)

    Haskell中的递归 递归就是定义函数以调用自身的方式,关于递归解决问题的实例有很多,如斐波那契数列,还有汉诺塔问题,递归也正是Haskell中用来解决循环问题的关键. 自定义maxinum函数 m ...

  6. List<T>常用操作函数

    1.Add():添加单个元素2.AddRange():添加一个集合4.Insert():插入一个元素5.InsertRange():插入一个集合6.Remove():移除指定的元素7.RemoveAt ...

  7. jQuery中关于全选、全不选和反选

    1.首先我们要获取当前点击的对象,然后得到点击事件,   判断他的状态如果是checked的话就把该第二行的选中,   否则就取消选中. 2.当第二列功能小项没有全部选中时,该行第一列的复选款也要取消 ...

  8. [MySQL] mysql 的行级显式锁定和悲观锁

    隐式和显式锁定:1.innodb是两阶段锁定协议,隐式锁定比如在事务的执行过程中.会进行锁定,锁只有在commit或rollback的时候,才会同时被释放2.特定的语句进行显式锁定 select .. ...

  9. Php中的goto用法

    我们先举个简单示例: <?php goto LABEL; //这个标签自定义 echo '乔峰'; LABEL: echo '鸠摩智'; 以上例程会输出:鸠摩智 解释:goto 操作符可以用来跳 ...

  10. C# 如何添加PPT背景(纯色背景、渐变色背景、图片背景)

    我们在创建Powerpoint文档时,系统默认的幻灯片是空白背景的,很多时候我们需要自定义幻灯片背景,以达到美观的文档效果.在下面的示例中将介绍给PowerPoint幻灯片设置背景的方法,主要包含以下 ...