一、暴力破解

1、基于表单的暴力破解

使用Burpsuite抓取页面的登录请求,看到是明文传输用户名和密码,把请求发送到Intruder进行暴力破解

设置攻击类型为集束炸弹,添加两个有效负载(多余的选中清除)在username和password

设置攻击的字典,选中第一个有效负载,设置运行时文件,并在有效载荷选取字典。该负载集为username,再同样设置第二个有效负载集,选取password的字典。

选项中设置规则进行过滤,方便查看暴力破解的结果,只要username或者password有一个不存在则匹配成功(页面中输入错误的账号登录可以看到这条提示),反之未匹配成功的就是暴力破解成功拿到的登录信息。成功登录的请求长度也会有所不同。

2、验证码绕过(on server)

思路是这样的:首先直接登录,提示用户名为空,那说明用户名是被检测的,密码同样。那么只有验证码为空或者错误呢,会提示验证码不能为空和验证码错误。接下来尝试填写每一项信息后登录,他会提示用户名或者密码不存在。也就是说,在这个请求中,验证码通过了验证,但是用户名和密码没有,抓包来看看(抓取过程中你会发现登录后验证码图片无法获取,正常是登录后刷新,也说明了验证码是服务端发送过来的,原理是刷新页面的时,我们会向后台发送一个请求,后台收到请求会生成一个验证码并在session中把验证码保存下来)。

发送到Repeater,验证码不作修改,发送后搜索exist关键词,提示用户名或密码不存在。随便修改一下密码,其它不变,再次发送后搜索关键词,还是提示用户名或密码不存在。说明验证码通过了,也就是验证码长久有效。

利用这点,抓取正确的验证码登录请求后直接进行暴力破解,与表单暴力破解相同只选取username和password两个有效载荷。

3、验证码绕过(on client)

同样对页面先进行手动测试,看不同的响应方式,注意验证码错误后会有错误信息弹窗。但这一点在抓取请求包重发后,并没有出现,而是和on server一样提示用户名或密码不存在,只修改密码后也是如此。那说明前端的验证码设置只在本地验证,抓取包请求时验证已经不再有效,可以直接爆破。

4、Token验证

再次抓取请求,多了Token验证。Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。Token存在于前端,所以不能用来防爆破。

token每次请求都会改变,所以暴力破解选择音叉(pitchfork)攻击类型,三个有效载荷

有效负载集1和2与上面相同;选项中Grep-Extract进行添加,点击获得回复显示源码,搜索并选取token的value值,确认OK后回到有效载荷,将选取的token有效负载集的类型选为递归搜索(Recursive grep),最后更改线程数为1。完成攻击

二、Cross-Site Scripting(XSS)

1、反射型XSS(get)

查看页面,尝试性的直接输入XSS代码:<script>alert('1')</script>,过程中会发现输入框有长度限制。于是检查页面,在代码中找到输入框的maxlength属性,由20修改到任意大。再次输入XSS代码即可成功。

2、反射型XSS(post)

参考暴力破解中的步骤,获取用户名和密码进行登录,输入XSS代码直接出现弹窗,说明反射成功。(get可以直接利用URL注入XSS代码,提交时能够在URL中看到;post一般为表单提交,不可以利用URL,观察URL可发现两者不同)

3、存储型XSS

存储型输入内容会被后台存储,每次访问页面时都会看到,也就是都会触发XSS,尝试输入XSS代码看有没有过滤,没有,OK,注入成功

4、DOM型XSS

反射型和存储型都需要与服务器交互才能完成攻击,而DOM将前端Html代码转换成树状结构方便程序脚本动态的更新树状结构的内容、样式、结构。DOM是能够自己在JS前端完成数据的输入输出,不依赖于服务器,抓包是无法获取的,这是最大的区别。

输入些内容观察标签,发现没有过滤,单引号即可闭合href属性,于是根据信息构造语句闭合标签:' οnclick="alert('1')">。点击what do you see?出现弹框,攻击成功。

5、DOM型XSS-X

任意输入内容提交后,发现该DOM型是以URL提交,点击语句出现新的语句,检查该标签源码,可以直接构造攻击代码:' οnclick="alert(666)">

6、XSS之盲打

盲打即不清楚目标的攻击方式,输入内容没有做过滤时可以提交XSS代码至后台,只要有管理员或者其它用户查看到存储记录即可攻击成功。此处直接输入XSS代码并进行提交。

提交后点击右上角提示,复制路径到URL以进入盲打后台,登录后跳出攻击弹窗(admin,123456,为之前爆破获得)。

7、XSS之过滤

过滤的重点是找到过滤点,我们先试用常用的代码关键部分进行尝试性输入,观察返回信息,script标签是被过滤了。尝试大小写成功绕过。

除此之外还有其他方式。抓包修改重放、URL编码或者其它类型标签:<img src=x οnerrοr="alert(1)">。思路有很多

8、XSS之htmlspecialchars

我们已经知道前端输入过滤是很重要的一个防御方式。在看到新的输入框时,我们先把一些关键字符输入,查看源码是否有未被过滤的字符。结果发现单引号未被过滤,直接构造闭合语句。

9、XSS之href输出

php文件源码中给出了这一关的关键。输入任意内容检查源码发现,输入的内容最后输出在a标签的href属性内,通过javascript协议才可以在其中执行攻击代码(防御方式:只允许http或https,然后使用htmlspecialchars()函数过滤)。过关代码:javascript:alert(1)。

10、XSS之js输出

输入tmac可以查看正常内容,但是不太好找攻击点。输入其他内容如11111,可以查看到内容输出在一个script标签内。根据标签尝试构造,我们首先要闭合$ms,然后闭合script标签,然后添加我们的攻击代码:'</script><script>alert(1)</script>。

Pikachu的渗透测试相关推荐

  1. Web安全防攻(渗透测试)

    第二章 2.1 在Linux系统中安装LANMP LANMP是Linux下Apache.Nginx.MySQL和PHP的应用环境,本节演示的是WDLinux的一款集成的安装包. 首先,下载需要的安装包 ...

  2. 渗透测试|网络安全常用靶场

    搭建教程网络上随便一搜一大堆,这里就不再赘述 vulhub 免费开源漏洞靶场 www.vulhub.org vulnhub 国外的一个靶场,难度中上(类似于真实渗透环境) https://www.vu ...

  3. 渗透测试-红/蓝队Hvv技术手册/面试

    红/蓝队Hvv技术手册/面试 介绍一下自己,喜欢研究的,实战过的项目,得过奖项的感悟. 经常关注的安全平台 基本功 网络协议(HTTP.TCP) 操作系统命令 底层编程开发(应用框架) 加密解密编码 ...

  4. 【2023年最新版】渗透测试入门教程,手把手带你进阶渗透测试工程师,学完即可就业

    前言 学习网络渗透技术是一件靠兴趣驱动的事情,只有强烈热爱一件事才能持之以恒的去做,对于那些三分钟热度的人来说还是劝你放弃吧,因为网络渗透技术自学需要很多方面的知识,没耐心是无法学会的. 当然除了有想 ...

  5. 渗透测试 ( 0 ) --- XSS、CSRF、文件上传、文件包含、反序列化漏洞

    漏洞数据库:https://www.exploit-db.com/google-hacking-database 1.渗透测试 实用 浏览器插件 chrome.edge 插件:搜索 cookie,安装 ...

  6. 渗透测试 ( 2 ) --- 渗透测试系统、靶机、GoogleHacking、kali工具

    操作系统:https://zhuanlan.zhihu.com/p/162865015 1.基于 Windows.Linux.Android 的渗透测试系统 1.1 基于 Linux 的系统 Kali ...

  7. WEB漏洞渗透测试靶场整理资源

    WEB漏洞渗透测试靶场整理资源 在所有人目光之外,一个人无声的坍塌下去,像是被什么火烧尽了,只余下灰烬 整理了一些WEB漏洞本地靶场资源,包括针对性的漏洞专题如SQL注入,XSS等-以及合集类的如DV ...

  8. 2023年如何入门渗透测试

    转眼间,从大三开始学安全,到现在也有五年了,也算是对渗透测试有一定理解,公众号准备出一些入门教程,以实操为主,希望可以帮助到想入门渗透测试的小白.如果觉得有用,可以在文章后面支持一下我,作为我写下去的 ...

  9. 浅析DNSlog在渗透测试中的实战技巧

    文章目录 前言 SSRF 盲打 XSS的盲打 XXE的盲打 SQL的盲注 RCE的盲打 总结 前言 在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起 DNS 请求,这个时候就可以通过这种方式把 ...

最新文章

  1. 适合NetScaler AG部署的 WI 定制站点开发
  2. 最短路之 SPFA(判环+负权)
  3. 数字信号处理学习笔记(二)|快速傅里叶变换
  4. 使用阿里云容器服务Kubernetes实现蓝绿发布功能
  5. Mybatis源码之与Spring集成包
  6. 用 Python 实现植物大战僵尸代码!
  7. 487-3279 (poj1002)
  8. CentOS 6.x + Nginx + PHP + MySQL + EduSoho[文档]
  9. 语音识别中输入输出的可能形式有哪些
  10. photoshopcs6快捷键
  11. excel锁定单元格不能修改_锁定单元格不被任意修改和删除
  12. Python分析《三国演义》中的社交网络
  13. 计算机如何安装无线网络适配器,无线网卡驱动怎么安装?电脑无线网卡驱动2种安装方法...
  14. B站顶流何同学对话苹果CEO库克,iPhone某些设计想法源自中国
  15. 超详细的JavaScript对象分享,看完就会了
  16. NLP 前置知识2 —— 深度学习算法
  17. LiTCTF by lingfeng - (crypto全解)
  18. win11系统开机后没有输入法——解决方法亲测有效
  19. 华生详解万科董事会:我为什么不支持大股东意见(上)
  20. ng-options用法详解

热门文章

  1. android手机可以分屏么,安卓手机怎么分屏操作 安卓手机分屏操作设置教程
  2. vscode设置C++代码格式化(Clang-Format)
  3. 【C语言】交换函数(swap)
  4. 推荐一个外国的数据结构在线演示网站
  5. MySQL语句性能优化
  6. ffmpeg安装过程记录
  7. vscode配置php运行环境以及xdebug
  8. Android 音视频变速原理
  9. python打印运行log
  10. HNU君陌:写点其他的