前言

  1. 本博客仅用于个人复习和学习,无商业用途

  2. 遇到问题,优先在本页搜索,检查是否有相关教程

  3. 请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者以及本博客无关

0x0. 知识点速览

  1. 网站搭建前置知识
  2. WEB应用环境架构类
  3. WEB应用安全漏洞分类
  4. WEB请求返回过程数据包

0x1. 网站搭建前置知识

域名:符号化的地址方案,来代替数字型的 IP 地址,每一个符号化的地址都与特定的IP地址对应,为了方便人们记忆而不用记住IP地址

DNS:Domain Name System,域名系统,因特网上作为域名和IP地址互相映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

0x2. WEB应用环境架构类

理解不同WEB应用组成角色功能架构:

开发语言,程序源码,中间容器,数据库类型,服务器操作系统,第三方软件等

  • 开发语言:asp,php,aspx,jsp,java,python,ruby,go,html等
  • 程序源码:根据开发语言分类;应用类型分类(交友||论坛||博客);开源CMS分类(用的人多了之后变成CMS源码);开发框架分类(源码封装后变为框架,直接调用)等
  • 中间件容器(支持网站运行):IIS,Apache,Nginx,Tomcat,Weblogic,Jboos,glasshfish等
  • 数据库类型:Access,Mysql,Oracle,db2,Sybase,Redis,MongoDB
  • 服务器操作系统:Linux、Windows、Mac系列
  • 第三方软件:phpmyadmin,vs-ftpd,VNC,ELK,Openssh等

通过详细了解上述角色功能架构,可以方便我们对症下药,在爆出漏洞的第一时间知道相关的知识

0x3. WEB应用安全漏洞分类

明白一个理念,关于WEB应用安全的漏洞,大部分都是在程序源码中产生的(代码写的不好产生安全问题

  • SQL注入:当web应用向后台数据库传递SQL语句进行数据库操作时,如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句,直接输入数据库引擎执行,获取或修改数据库中的数据。

  • 文件安全:用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。常见场景是web服务器允许用户上传图片或者普通文本文件保存,而用户绕过上传机制上传恶意代码并执行从而控制服务器

  • RCE执行:RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统

  • XSS跨站:跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页面时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击

  • CRLF:这个漏洞名词来源于打印机,在计算机中表示一行的结束,通过控制CR和LF的出现,在拼接http响应头的过程中,服务器检测到\r\n的时候会按照http规范认为已经到达一行的末尾,后面的数据输出到下一行。在对文件进行io读写的时候也经常会以\r\n或者\n作为判断行末尾的依据,后面的数据换行后再输出

  • SSRF:SSRF的意思是服务端请求伪造,如字面意思,就是攻击者构造的由服务器发起请求的一种漏洞。而服务端能够访问外界访问不到的内网,因此可以利用这个特性来攻击部署在内网的脆弱中间件以及其他服务

  • CSRF:中文翻译叫跨站请求伪造,和XSS利用方式有点像,但是XSS利用的是站点内信任的用户,而CSRF是通过伪装成被信任的用户请求受信任网站

  • 反序列化:反序列化就是指把字节序列恢复为Java对象的过程

  • 逻辑越权:逻辑越权漏洞就是当用户跳过自己的权限限制,去操作同等级用户或者上级用户。正常的情况下,当一个用户去访问某个资源的时候,首先需要去登录验证自己的权限,其次是对数据的查询,最后返回数据内容。但是如果在权限验证这里,出现了验证不足或者根本就没有验证,那么就会导致越权漏洞的出现

  • 未授权访问:是在攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作

  • XXE/XML:外部实体注入(也称为 XXE)是一种 Web 安全漏洞,允许攻击者干扰应用程序对 XML 数据的处理。它通常允许攻击者查看应用程序服务器文件系统上的文件,并与应用程序本身可以访问的任何后端或外部系统进行交互

  • 弱口令安全:使用别人容易猜测到的或者破解工具容易破解的口令

0x4. HTTP状态码相关

文件夹目录返回403,表示文件夹存在(403为权限不够,不能查看文件夹目录)404表示不存在

文件返回200存在,返回404不存在

3xx表示跳转:处置过程,判断可有可无

5xx表示内部错误:服务器问题,文件判断可有可无

所以在使用目录扫描时,3xx和5xx一般勾选上(自己无法判断,宁可错误也别放过)

image-20240406172115150

0x5. 代理服务

代理包括内部代理和远程代理,内部代理就是burp、fiddler等一类中间工具

远程代理:快速更换代理,防止被拉黑被溯源,防止身份鉴别(web搜索快代理可以购买)

0x6. 演示案例

1.请求包-新闻回帖点赞-重放数据包

仅对于无身份认证的网页有效,有身份认证的无法重复刷赞(代码逻辑不一样,限定条件不一样)

将浏览器配置改为和自己burp配置相同(推荐一个小工具,Edge插件proxy switcher)

a9bfca6a5fe6d48175660023e6ffad58

打开新浪网,随便点开一个新闻,进入评论,同时把burp的拦截打开

9025310b3400c30f0a7a3df0b991b94d

点赞后,抓取数据包,不停的转发数据包,可以发现点赞数一直在上升

2.请求包-修改UA头

有时候电脑不能访问到手机的某些页面,即某些网页只针对于手机界面,此时可以通过burp修改数据包请求头(UA)使得电脑浏览器能够访问到手机界面,进而进行一些操作