)
该篇文章主要是写给WEB安全入门者的基础与思路基础HTTP协议网站访问过程静态页访问首先用户通过浏览器打开kw0ng.top此时浏览器会向DNS服务器请求解析将kw0ng.top转换为IP地址120.78.132.122接着数据包开始一层层封装以便于在网络中传输数据包HTTP Request会被发往120.78.132.122中间可能经过运营商过了很多跳路由直到送达到目的地址120.78.132.122此时120.78.132.122上的Apache正在运行120.78.132.122经过网络层还原回应用层HTTP协议送达至Apache我们一般称Apache这类功能软件为中间件其他中间件还有NginxTomcat等Apache将默认的index.html页面读取后作为HTTP Response返回给浏览器浏览器解析后将页面展现出来。此时就完成了一个静态页面的访问过程。动态页访问前期与上相同一直到Apache中间件Apache发现请求的是PHP文件于是将数据包转发至PHP应用PHP应用接受请求后解析数据包发现存在参数id1PHP应用开始计算如果是需要连接数据库的方法则将id值组装成SQL语句向数据库发起查询最后将结果返回给中间件此时的结果也是静态内容因为结果最终都要返回给浏览器因此无论是PHP还是Python编写的网站最终浏览器展现的都是HTMLJS与CSS。代理挖掘漏洞就要分析应用工作过程而网站作为B/S的架构HTTP协议是前后端交互的基础协议因此分析网站交互的HTTP数据包再从数据包中找寻漏洞是渗透测试的基本手段。而代理就是截获网站前后端HTTP数据包的手段通过代理我们可以对数据包进行篡改、重放来测试漏洞。目前常用的代理工作方式是通过浏览器插件将流量转发至特定IP端口而通过特定软件如Burpsuite监听端口来接收插件转发来的流量实现代理浏览器流量。BurpsuiteHTTPS协议需要注意的是浏览器(Client)拿到证书后验证其数字签名具体方式是根据证书上写的CA签发机构在浏览器操作系统内置的根证书里找到对应的公钥用此公钥解开数字签名得到摘要digest,证书内容的hash值据此验证证书的合法性这也就是为什么使用Burpsuite劫持HTTPS网站需要安装Burpsuite根证书的原因。我给大家准备了一份全套的《网络安全入门进阶学习资源包》包含各种常用工具和黑客技术电子书以及视频教程需要的小伙伴可以扫描下方二维码或链接免费领取~HTTPS中间人Burpsuite通过代理方式接收到浏览器HTTPS请求后返回自身的HTTPS证书由于我们已经安装好了Burpsuite的根证书因此浏览器验证证书通过浏览器开始与Burp协商对称加密密钥之后Burp便可以解密浏览器发来的HTTPS数据包内容了而Burp又以作为客户端的方式向真正的HTTPS网站发起HTTPS交互交互过后此时Burp就拥有了两个对称密钥一个用来加解密浏览器发来的数据另一个用来加解密真实HTTPS网站的数据。这样Burp作为中间人就可以完整的看到明文的HTTPS数据包内容了。APP与小程序灰盒主动与被动漏洞扫描-发现通用漏洞Nessus与AWVSNessus与AWVS是老牌商业漏洞扫描器漏洞库非常完善对于一些历史漏洞如Windows、Weblogic、Redis、Tomcat等操作系统与组件历史CVE挖掘非常好用。Nessus使用第一步-登录https://ip:8834/新建扫描选择扫描模式一般使用高级扫描即可输入项目名称与目标IP地址不要使用http://ip这种只输入IP地址一般这就可以直接进行保存了也可以手动进行其他高级配置保存后会跳转到主页这是我们还需最后一步启动扫描启动扫描后就可以进入项目中实时查看扫描结果了AWVS使用AWVS主要用来扫描WEB站点第一步-登录https://ip:3443/#/login第二步-扫描添加单个扫描目标登录扫描模式网站不能有图形验证码等开启Site LoginNew新建AWVS会自动访问我们输入的目标站点其实这就是内置了个浏览器我们手动进入登录界面输入账户密码并点击登录登录成功后点击右下角的Finish即可之后再点击ScanXray虽然主动扫描可以发现很多系统与组件历史漏洞但是却无法深入WEB应用挖掘即使AWVS支持输入账号密码扫描但面对一些需要验证码登录的系统依然束手无策且主动爬虫技术注定难以全面的发现所有接口因此我们可以通过代理的方式将所有数据包转发至漏洞扫描器这样就可以尽可能全面的测试到所有功能点特别是针对SQL注入、反射型XSS漏洞效率很高。第一步-生成证书xray_windows_amd64.exe genca安装证书运行命令之后将在当前文件夹生成 ca.crt 和 ca.key 两个文件证书是ca.crt文件安装后这两个文件保留即可不要删除系统安装火狐浏览器单独安装第二步-修改配置文件配置文件中默认了只能扫描哪些目标因为我们要将它修改打开config.yaml允许扫描的域添加个*不允许扫描的域也可以略做删减第三步-运行Xray.\xray_windows_amd64.exe webscan --listen 127.0.0.1:7777 --html-output xray-testphp.html127.0.0.1:7777为Xray监听的端口xray-testphp.html为输出的报告文件第四步-配置代理浏览器使用代理插件将流量转发至XrayXray会针对经过的流量进行漏洞扫描CMS历史漏洞检查漏洞扫描器的POC不一定很健全如一些小型的CMS的漏洞可能并未收集我们可以查看该应用使用的框架版本、以及使用的网页编辑器等版本然后通过搜索引擎来查找是否存在一些公开漏洞payload。漏洞猜想与验证-发现功能漏洞再进行了主动与被动漏洞扫描之后一些通用漏洞如MS_17010、SQL注入 往往此时已经被挖掘出来接下来我们要通过人工测试去挖掘一些扫描器无法发现的漏洞如存储型XSS、越权、ID遍历等此时我们一般使用功能点猜想法便是根据具体功能点去测试漏洞如一个登录页面我们可以猜想存在用户名枚举用户密码爆破万能密码登录绕过密码找回逻辑缺陷而在灰盒测试中我们往往有了一个可登录的账户因此本轮我们重点关注的是一些敏感功能如文件/头像上传功能个人信息修改功能这两个往往会存在任意文件上传与存储型XSS。还有就是要关注一个功能点的数据包实现功能实现的不严谨往往就会存在逻辑漏洞如修改密码处是否需要传递原密码是否通过传递用户id来作为用户修改密码的身份凭据。流量审计-查缺补漏在针对功能猜想与验证完后我们可以对期间产生的流量进行审计利用Burpsuite的HTTP history去查看浏览器发送过的所有数据包寻找敏感参数与值如filea.png就可能存在任意文件读取urlhttp://a.com 可能存在URL跳转或SSRF漏洞出现userid1可能存在横向越权漏洞。权限、配置-寻找配置问题这一轮的测试可在前3轮中穿插这一轮主要是权限配置如垂直越权通过替换cookie来测试是否有健全的权限管控通过编写CSRF POC来测试服务端对跨站请求伪造是否做了防范措施通过手动添加Origin头来测试跨域策略配置是否合理。黑盒当我们拿到一个没有账户密码的网站除了直接漏洞扫描还可尝试测试以下内容。扫描目录/接口备份文件泄漏接口文档泄漏在一些使用自动化接口文档的WEB应用开发可能忘记关闭接口文档展示devtools查看前端代码通过Chrome的devtools我们可以查看到网站的部分html与js代码而一些这些文件中则会暴露一些接口出来通过这些接口我们可以尝试测试以下漏洞文件读取漏洞常出现在需要下载插件或客户端的web应用用户遍历通过登录失败的提示来遍历用户名尝试寻找弱口令用户任意用户密码重置密码找回逻辑是否合理未授权访问漏洞前后端分离模式中接口基本都可以在js文件中找到测试是否存在未授权访问寻找源码通过前端代码特征在Github中寻找相同代码转为白盒测试。通过前端代码特征在Fofa等网站寻找相同站点尝试扫描网站备份文件或弱口令转为灰盒或白盒测试。白盒基础信息通过web应用配置文件来收集一下信息WEB应用使用了什么开发模式、路由规则使用了哪些组件、组件的密码Token、Key强度是否足够跨域、HTTP等返回头配置可能存在的问题使用存在已知漏洞的组件如Fastjson 1.70以下版本数据库、Shiro AES Key、JWT Key强度不足跨域资源共享配置缺陷、未配置HttpOnly、SameSite访问控制一个WEB应用通常都会设计授权认证体系这部分主要摸清该应用的访问控制是如何实现的主流实现方式如下ShiroSpring SecurityJava FilterJava Interceptor可能存在的问题权限配置不严格导致存在未授权访问漏洞未做权限分离导致存在垂直越权漏洞使用Filter、Interceptor黑名单的方式限制用户访问授权接口可能存在权限绕过漏洞常规漏洞通过检测相关函数名或特征可以迅速发现以下漏洞SQL注入文件处理命令执行反序列化URL重定向SSRFXXE一些特征SQL注入寻找拼接SQL语句的方法、查看Mybatis的xml中是否有使用${}的且追溯后参数可被用户控制grep -rn “\${” *文件处理FileInputStreamFileOupputStreamRandomAccessFileFileUtilsAsynchronousFileChannelFilesFileUtil有时还可以通过HTTP返回头快速定位文件下载方法Content-Disposition命令执行Runtime.execProcessBuilder.startGroovyShell.evaluate反序列化ObjectInputStream.readObjectObjectInputStream.readUnsharedXMLDecoder.readObjectYaml.loadXStream.fromXMLObjectMapper.readValueJSON.parseObjectURL重定向RedirectSSRF:HttpClient.executeHttpClient.executeMethodHttpURLConnection.connectHttpURLConnection.getInputStreamURL.openStreamXXE判断使用哪种XML解析器搜索是否有禁用外部实体配置修护部分有具体代码是否有外部输入点进行解析业务逻辑虽然前面已经能发现大部分常规漏洞但一些逻辑漏洞是不具有很明显的特征的还是需要我们去关注下重要的业务逻辑如密码修改、密码重置设计的是否合理查看用户信息是否使用了一些可遍历的User_id参数。网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取1.成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图学习规划。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。2.网安入门到进阶视频教程很多朋友都不喜欢晦涩的文字我也为大家准备了视频教程其中一共有21个章节每个章节都是当前板块的精华浓缩。全套教程扫描领取哈3.SRC黑客文档大家最喜欢也是最关心的SRC技术文籍黑客技术也有收录SRC技术文籍黑客资料由于是敏感资源这里不能直接展示哦全套教程扫描领取哈4.护网行动资料其中关于HW护网行动也准备了对应的资料这些内容可相当于比赛的金手指5.黑客必读书单6.网络安全岗面试题合集当你自学到这里你就要开始思考找工作的事情了而工作绕不开的就是真题和面试题。所有资料共282G朋友们如果有需要全套《网络安全入门进阶学习资源包》可以扫描下方二维码或链接免费领取~