XSS

  xss.haozi.me 也不记得是从哪里知道了这个用于做xss的简单网站。整体上各种绕过方法还是值得去总结一下的。正好自己javascript也就学了点浅显的,以此为契机深入一下

目标是alert(1)

0x00

先看源码

0x00

源码里并没有什么特殊过滤的措施,所以知道xss的原理就可以直接上payload

0x00payload


0x01


0x01

这里的不同之处就在于<textarea>标签,其实也没有什么特别之处。就是如果按照上面的思路来构造payload,出来的内容就在textarea表示的文本框中。因此先闭合textarea即可。

0x01payload


0x02


0x02

这种形式的xss构造实话说在做完题后又在各种web安全书籍中关于xss的例子中见到:直接给value一个空值,闭合input。后面就一样了。

0x02payload


0x03



0x03

从这道题开始,有了一些绕过的限制。比如这里是把括号()换成空字符。(正好了解了js里的字符串替换用到的正则格式/[ ]/g  , /[ ]/是标准格式,其中g表示全局匹配)

因此alert(1)就用不上了,,,但是还有这样的一个方法:利用模板字符串,也就是可以嵌入表达式的字符串。用反引号``替代普通字符串的单引号与双引号。模版字符串可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串,这被称为“标签模板”功能。

所以:

0x03payload


0x04


0x04

于是做完0x03,0x04马上就把``给过滤了。。。

后来去看writeup时,发现<svg>标签可以表示实体字符,所以查了下括号的实体字符,分别为&#40;,&#41;payload如下


0x04payload


0x05



0x05

这个的限制也很有意思,把注释的-->闭合符号换成笑脸。

但其实,html注释的闭合还有一种(这真的是考基本功啊), 就是采用<!--  --!>的对称式注释方法。因此payload就显而易见了。

0x05payload


0x06


0x06

这里是过滤掉以auto开头或者on开头,=等号结尾的标签属性并替换成_,且忽略大小写,所以常规的标签闭合都不能用了。

乍一看感觉已经无解了啊。但是其实,on.*这个正则表达式中的小数点限定只匹配除换行符以外的其他字符。那么这里就可以用换行来绕过了。这样一来,正则不会匹配,即使它是on开头且有等号。

具体使用input里哪个属性,好像有多种方法,网上大部分wp都用的是onmousemove=alert(1),不过我自己试的时候并没有成功。所以用的是onerror属性


0x06payload


0x07

0x07


这里的正则匹配了<开头>结尾的标签字符串,且忽略了大小写。

其实可以用浏览器的容错性,少一个>并不影响。


0x07payload


0x08


0x08

此处能将</style>标签给换成稀奇古怪的一堆字符,也是为了防止我们闭合。

但是换行依旧有效!此处也只用换个行就可以解决正则匹配的问题。

0x08payload


0x09

0x09

这里的第一个要求是input内容必须以上面的网址开头,所以先写出网址后,考虑在script标签中注入。这里先闭合掉前面含有网址的sciprt后,加上alert(1)内容,后面还有</script>未匹配,因此考虑直接注释掉。

0x09payload


0x0B


0x0B

转大写的解决方法其实很简单,就是利用实体编码绕过


0x0Bpayload


0x0D


0x0D

正则匹配<,/,",'这四个符号,并且替换为空,但是输入点是在//注释后。

所以用换行来躲单行注释,同时为了处理单引号,用html注释闭合。

0x0Dpayload


0x0F

0x0F

这里将一些特殊字符编码处理了,但是这里的xss点在img标签中,看起好像没办法闭合了,但是这里的位置是在onerror属性中,所以我们可以闭合前面部分的代码,引出我们要的xsspayload,并且注释掉后面部分的代码。

0x0Fpayload


0x10


0x10

这道很简单,直接alert(1)都可以,就不贴payload了


0x11


0x11

转换了一些字符,但是可以注意到双引号"转换成\"正好将\引入在内。因此面对/变为\/\/就可以直接构造payload


0x12



0x12

由于输入点在script标签外,则不能考虑html实体编码

与上题颇为相似,双引号变成\\",在实际输出中可以在添一个\来转义掉第一个\绕过

0x12payload



由于一些原因,其中几道题因为用到外部js不知为何不能通过,就不写题解了。

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

推荐阅读更多精彩内容

  • 漏洞简介 跨站脚本攻击又名XSS,全称为Cross Site Scripting,为了区别层叠样式表(CSS)所以...
    捡垃圾的小弟弟阅读 1,800评论 0 7
  • 写在前面 文章内容参考自https://twosecurity.io/http://www.4hou.com/we...
    Ackerzy阅读 5,192评论 0 9
  • 几种加载XSS Payload的不常见标签 和我们能想到的一样,预防是最好的治疗方法,而且去尝试和缓解一些意外的攻...
    捡垃圾的小弟弟阅读 1,151评论 1 2
  • 前言 这是比较简单的xss练习小游戏,非常适合入门。一直以来,对xss的内容总感觉有一些屏障,应该是因为动手实践太...
    煊奕阅读 2,773评论 0 2
  • 入伏运动须知 一些年轻的运动者,更喜欢超负荷运动,挑战自己的极限,运动完之后一般都是大汗淋漓的。 但是,入伏后身体...
    因为咸啊阅读 272评论 0 1