bWAPP学习笔记 - A3 Cross-Site Scripting (XSS)

XSS - Reflected (GET)

Level:Low

没有任何过滤措施的XXS
任意脚本都可以
<script>alert(1)</script>

Level:Medium

源码中使用了addslashes()函数来进行过滤

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (POST)

与上面的GET方法一样。


XSS - Reflected (JSON)

Level:Low

本题中json是在客户端解析,需要做的就是重新拼合json内容
payload: 1"}]' ; alert(1) //

原始内容:


拼合后内容:


Level:Medium / High

加入了htmlspecialchars()函数


XSS - Reflected (AJAX/JSON)

Level:Low / Medium

通过AJAX调用了 xss_ajax_2-2.php?title=的返回
所以2种玩法:

  1. 在页面内直接输入XSSPayload即可
  2. xss_ajax_2-2.php?title=页面也可以直接输入Payload
Level: High

源码中加入了JSON.parse()函数进行了过滤处理

JSONResponse = JSON.parse(xmlHttp.responseText);

XSS - Reflected (AJAX/XML)

Level:Low

本题最关键的在于了解 HTML的转义作用
Payload: &lt;img src=0 onerror=&quot;alert(1)&quot;&gt;

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。
Payload: &lt;img src=0 onerror=&quot;alert(1)&quot;&gt; 依然可用

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (Back Button)

Level:Low

本题关键点在 HTTP 头部的 Referer
通过网页源文件查看,onClick引用的是 Referer 的值


通过Burp Sutie修改 Referer 的值,以此来达到XSS的目的
Payload:'"><img src=a.png onerror=alert(/xss/)>

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (Custom Header)

Level:Low

本题需要在HTTP的头部加入'bWAPP字段即可 Palyload: bWAPP: <script>alert(1)</script> `

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (Eval)

Level:Low

通过GET类型传递javascript函数
Data()函数改为alert(1)即可

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤


XSS - Reflected (HREF)

Level:Low

可以发现name的值直接传递到了 <a>href参数中
构造Payload闭合<a>标签,然后加入XSS
Payload: 1>Vote</a><script>alert(1)</script>

Level:Medium / High

源码中使用了urlencode()函数来进行过滤。


XSS - Reflected (Login Form)

Level:Low

使用万能密码: 1' or 1=1' 加入XSSPayload ,导致在mysql_error()函数报错时,执行html语句
Payload: 1' or 1=1' <script>alert(1)</script>
报错信息:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' <script>alert(1)</script>' AND password = 'bug'' at line 1

Level:Medium

源码中使用了addslashes()函数来进行过滤,因为有转义,所以该函数无效。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


phpMyAdmin BBCode Tag XSS

Level:Low / Medium / High

本题是关于BBCodeXSS
phpmyadmin 中的error.php,可以直接饮用外链
Payload: error.php?error=+[a@http://www.baidu.com@]XSS@[/a]



XSS - Reflected (PHP_SELF)

Level:Low

没啥好说的,输入框直接上XSSPayload

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Reflected (Referer)

Level:Low

直接在Referer里加入XSSPayload即可

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Reflected (User-Agent)

Level:Low

直接在 User-Agent 里加入 XSSPayload即可

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Stored (Blog)

Level:Low / Medium

直接在输入框内填入Payload即可

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Stored (Change Secret)

Level:Low

在输入框直接插入Payload , 在数据库中可以看到已经插入成功
回到 SQL Injection (Login Form/User) 页面时,点击login,就发现XSS已经启动

第二种玩法:
在网页源码中可以找到 <input>hidden标签,修改为text,然后插入Payload
"><script>alert(1)</script><"

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。


XSS - Stored (Cookies)

本题讲的是XSS篡改

Level:Low

直接在浏览器地址栏里修改genre参数,即可修改对应的Cookies的值

Level:Medium

源码中使用了htmlspecialchars()函数来进行过滤。

Level:High

源码中限定了Cookies的值,不允许篡改


SQLiteManager XSS

Level:Low / Medium / High

又是一个应用的XSS
http://172.16.8.134/sqlite/index.php?dbsel=1
构造闭合即可
Payload: "><script>alert(1)</script>


XSS - Stored (User-Agent)

Level:Low

User-Agent 会存储在数据库中,同时还是显示出来
用Burp Sutie 直接抓包,修改 User-Agent 即可

Level:Medium

源码中使用了addslashes()函数来进行过滤。

Level:High

源码中使用了htmlspecialchars()函数来进行过滤。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容