pikachu靶场练习

pikachu靶场练习

  • 暴力破解
    • 基于表单的暴力破解
    • 验证码
    • 验证码绕过(on server)
    • 验证码绕过(on client)
    • token防爆破?
    • 暴力破解小结
  • Cross-site scripting(跨站脚本攻击)
    • 反射型xss(get)
    • 反射型xss(post)
    • 存储型xss
    • DOM型xss
    • DOM型xss-x
    • xss盲打
    • xss之过滤
    • xss之htmlspecialchars
    • xss之href输出
    • xss之js输出
    • XSS小结
  • CSRF
    • CSRF(get)
    • CSRF(post)
    • CSRF Token
    • CSRF小结
  • SQL-Inject
    • 数字型注入(post)
    • 字符型注入(get)
    • 搜索型注入
    • xx型注入
    • "insert/update"注入
    • "delete"注入
    • "http header"注入
    • 盲注(base on boolian)
    • 盲注(base on time)
    • 宽字节注入
    • SQL-Inject小结
  • RCE
    • exec "ping"
    • exec "eval"
    • RCE小结
  • File Inclusion
    • File Inclusion(local)本地文件包含
    • File Inclusion(remeto)远程文件包含
    • File Inclusion小结
  • unsafe filedownload
    • unsafe filedownload
  • unsafe upfileupload
    • client check
    • MIME type
    • getimagesize
    • unsafe upfileupload小结
  • over permission
    • 水平越权
    • 垂直越权
    • 小结
  • ../../
    • 目录遍历
  • 敏感信息泄露
    • IcanseeyourABC
  • php反序列化
    • PHP反序列化漏洞
  • XXE
    • XXE漏洞
  • URL重定向
    • 不安全的URL跳转
  • SSRF

暴力破解

基于表单的暴力破解

随便输入一个用户名和密码,然后bp抓包
pikachu靶场练习_第1张图片抓包送入intruder模块
选中第四个模式
pikachu靶场练习_第2张图片为账号和密码分别导入自己的字典,就可以start attack开始爆破了
pikachu靶场练习_第3张图片
根据相应的长度判断是否登陆成功
爆破出一个简单的账号密码:admin/123456
pikachu靶场练习_第4张图片

验证码

验证码的生成:

前台点击图片时,后台生成验证码以及对应图片,并将图片响应给客户端
验证码的生成算法中一般包含随机函数,所以每次刷新都会改变

验证码的作用:

在每次登录时判断收到验证码与后台的验证码是否匹配
1、防止恶意爆破账号密码(例如上一个流程)
2、防止脚本的批量操作

验证码的认证流程:

1:客户端请求登录页面,后台生成验证码
2:客户端将认证信息和验证码一同提交,后台对提交的验证码与保存的验证码进行比较
3:客户端重新刷新页面,再次生成新的验证码

验证码绕过(on server)

随便输入账号密码以及正确的验证码后登录。
bp抓包,并转到repeater模块。
在该模块多次修改账号密码并发包时可以发现回显没有提示我们验证码错误,就说明此处的验证码在我们再次刷新之前应该都是有效的,或者说该验证码的存活时间比较长,而不是说每一次发包(登录)都会换一个验证码。
那这里就很简单了,输入一个正确的验证码,前台不刷新,intruder模块爆破即可。

验证码绕过(on client)

在客户端的验证码就更简单了,
抓包发现验证码对登录结果完全没有影响
pikachu靶场练习_第5张图片
你甚至可以直接删除输入框
pikachu靶场练习_第6张图片
删除源码
pikachu靶场练习_第7张图片
禁用js
pikachu靶场练习_第8张图片
等等都可以直接绕过客户端的验证码

token防爆破?

在这一步会生成一个隐藏的token
pikachu靶场练习_第9张图片正常的登录是完全没有问题的,但是我们是来爆破的
每一次访问都会更改的token小小的加大了我们爆破的难度
不过这一点bp还是可以做到的
尝试了一下,同时爆破用户名、密码、token的方法行不通
pitchfork两个字段各自遍历各的,达不到爆破用户的要求
pikachu靶场练习_第10张图片

cluster bomb会吧token也算入笛卡尔积,那就完全废了
pikachu靶场练习_第11张图片
所以这里我们半自动自己改用户名

开始正题
老样子加上§§
pikachu靶场练习_第12张图片

在option界面,看到responses也能大致猜到这块内容是从页面回显拿东西
pikachu靶场练习_第13张图片下面选中always(也就是让我们每爆破一次就要获取和发送一次token值)
pikachu靶场练习_第14张图片
设置为单线程,多线程的访问会相互影响token值
pikachu靶场练习_第15张图片
为了方便查看也可以直接将成功结果写入正则
pikachu靶场练习_第16张图片
账号密码分别导入字典后,token位选中grep,并写入初值
pikachu靶场练习_第17张图片

开始攻击,可以发现token成功的更换,我们也能成功的爆出账号密码
pikachu靶场练习_第18张图片

暴力破解小结

防爆破的一些手段

让验证机制不止局限在验证码,图形验证,滑动验证等都可以参考
对认证错误给出次数限制,超出次数就锁定账户一段时间
使用多因素认证

Cross-site scripting(跨站脚本攻击)

XSS简介(百度百科)
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

三种XSS类型(百度百科)

危害:存储型 > 反射型 > DOM型

(1)存储型:最直接的危害类型,跨站代码存储在服务器(数据库)。
(2)反射型 :反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
(3)DOM型:DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。
基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

攻击流程
(1)找到恶意代码注入点,如输入框。
(2) 在测试网页过滤后,构造恶意代码。
(3)测试恶意代码是否能被网页正确解析,造成xss攻击。

反射型xss(get)

给了一个输入框,先试一下
pikachu靶场练习_第19张图片
看源码可以发现代码嵌入网页了
pikachu靶场练习_第20张图片
尝试输入发现写不完,原因是次出最大长度限制,删除html代码或者直接写在url栏都可以绕过。
在这里插入图片描述
pikachu靶场练习_第21张图片成功执行了alert(‘a’)

反射型xss(post)

pikachu靶场练习_第22张图片
既然他说要获取cookie,那我们就写一个

pikachu靶场练习_第23张图片
再进一步就是记下他的cookie
先再vps上写一个简单的php


$cookie = $_GET['cookie'];
$ip = getenv ('REMOTE_ADDR')

你可能感兴趣的:(打爆靶场,安全,web安全)