美文网首页学习CTFCTF
[实验吧](Web)仔细点就行了

[实验吧](Web)仔细点就行了

作者: 王一航 | 来源:发表于2016-10-10 11:16 被阅读584次

题目链接:
http://www.shiyanbar.com/ctf/30


分析:
打开题目提供网页 , 发现是一个登陆页面 , 而且提供了源码 :

Paste_Image.png

根据源码可得知 , 使用了ACCESS数据库

(通过搜索 : Microsoft.jet.OLEDB.4.0 可得知)

直接找到关键代码 :

关键代码 : 
1. 如何处理用户输入
2. 如何构建SQL语句

如下图 :

Paste_Image.png
sql = "select * from bdmin where name='" & name & "'"

这里我们可以利用联合查询构造SQL查询返回值达到满足代码逻辑的效果
由于我们审计代码可以得到 , 这里对用户输入并没有任何检查 , 直接拿来构造SQL语句
所以理论上我们就可以在这里执行任何的SQL语句 , 只要这里连接的数据库的这个用户的权限有多大 , 我们的权限就有多大

注 : 有的题目中 , 会留一个PHP可以读取文件的后门 , 这也是和这道题的效果是差不多的 , 只要PHP在服务器上的权限有多大 , 我们拿到后门后权限就有多大

然后我们就可以开始进行构造和攻击 :
这种UNION联合查询的攻击的主要是利用前一部分查询失败后会显示后一部分查询的结果这个原理
因此我们要利用的话 , 就需要构造参数让前一部分的查询失效 , 然后我们后一部分有用的信息就可能会被显示出来
构造输入如下 :

Username : 0' union select 1,1,1 from bdmin %00
Username : 0' union select 1,1,1 from bdmin
Password : 1

下面我们来解释一下为什么需要这么构造 :

  1. Username中 :
  2. 这里第一字符0就是为了让前一部分的查询失效 , 随便写就行
  3. 第一个单引号是为了闭合代码中SQL语句的前一个引号
  4. union select 1,1,1 from bdmin 这里 select 1,1,1 from bdmin就是构造一个返回值为 1,1,1 的结果
  5. 最后的 %00 是由于ACCESS数据库没有注释这一说 , 因此使用00截断对SQL进行结束
  6. Password中 :
  7. 这里的密码要和上面我们构造的1,1,1进行对应

本地构造演示 :

Paste_Image.png

这样就可以任意构造我们想要的返回值
输入我们构造好的用户名和密码即可拿到flag

发现在输入的时候又有问题了 , 这里在前端对用户名的长度做出了限制 , 直接使用Chrome的调试工具进行调试 , 将input标签的maxlenght属性去掉即可
或者也可以不使用他的网页 , 直接发送POST请求 (利用Chrome插件 : PostMan / 利用Python脚本 / 利用BurpSuite .... )

**后记 : **
写完之后发现一个错误 , 这里不能直接使用Chrome发送Post请求 , 因为我们这个SQL语句最后需要注释掉原本SQL语句后面的引号 , 因此使用了%00 , 但是在浏览器发送数据的时候 , 首先会将数据URL编码 , 然后再进行发送 , 因此我们需要使用Burp发送 : 如下图 :

Paste_Image.png

答案:
Great! Key:BeautIful111


知识点:

  1. ACCESS注入总结

相关文章

  • [实验吧](Web)仔细点就行了

    题目链接:http://www.shiyanbar.com/ctf/30 分析:打开题目提供网页 , 发现是一个登...

  • [实验吧]Web

    简单的登录题 解题链接: [http://ctf5.shiyanbar.com/web/jiandan/index...

  • 实验吧-WEB题解

    主要方法 工具 题型3 因缺思汀的绕过 访问解题链接去访问题目,可以进行答题。根据web题一般解题思路去解答此题。...

  • WEB(实验吧)--PHP大法

    提示:注意备份文件访问index.php.txt将 分析代码知道:因为浏览器会自动解码,所以将hackerDJ编码...

  • 实验吧CTF-WEB

    实验吧CTF题库-WEB 做题并没有按照顺序,跳着来做的,写文章的目的就是为了记录下解题的思路,当然如果能够顺便帮...

  • [实验吧] 所有web writeup

    实验吧 writeup 打算把实验吧所有的web题做一遍花了一个礼拜多的时间吧有些也看了wp不得不说收获挺大 WE...

  • 实验吧web-false

    题目地址:http://ctf5.shiyanbar.com/web/false.php 点击View the s...

  • 实验吧web-Forms

    题目地址:http://ctf5.shiyanbar.com/10/main.php 一道很简单的题目,进去后看到...

  • 实验吧 Web-False

    没想到又有时间写wp了。。那就再写一篇吧。 False 跟前两次写的题一样,还是php代码审计,而且这一次的题跟c...

  • 实验吧web-FALSE

    又是菜鸡的一天,一道简单题。1、题目提示: 2、打开网站,发现下面直接可以看源码,那就看吧,直接view: 也就是...

网友评论

  • 傻傻笨笨宝宝:%00 是直接写着 后面吗? 不用在hex中修改吗?
    王一航:%00 是URL编码 , 这个URL编码提交到服务器之后就会被解码 , 就变成了真正的 \x00

本文标题:[实验吧](Web)仔细点就行了

本文链接:https://www.haomeiwen.com/subject/agimyttx.html