刚刚看完东京奥运会乒乓球混双比赛,盺雯组合惜败日本,博主也是深感遗憾,但是,中国健儿的顽强拼搏、越到艰难时刻越是奋力拼杀的精神深深感染着我们每一个中国人,我们都要向中国健儿学习! 最近博主在学习XSS漏洞,XSS漏洞需要很多前端知识,写此博客,做一个复习(暑假回家,书在学校的无奈)。
HTML的注释风格:
//
HTML中表单的格式
// HTML表单(输入内容为文本)
<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>
//HTML 表单(输入内容为密码)
<form>
Password: <input type="password" name="pwd">
</form>
因此,在存在XSS漏洞的表格中可以这样闭合:
"><script>alert(1)</script>
还原HTML语句为:
<input type="text" name="lastname"><script>alert(1)</script>
HTML中链接
<a href="url">链接文本</a>
htmlspecialchars()函数
之前博主在PHP初步学习系列中提到过这个函数,这个函数的作用就是把括号内的字符串中的特殊符号转变为HTML实体, 如 > < "等符号。
htmlspecialchars()函数常见于两个位置,第一个位置是填写表单的时候,第二个位置是处理表单的时候(PHP服务器端语言)
onfocus事件
获取焦点的瞬间完成代码内容,一般放在表单代码中,标准用法如下:
<input type="text" onfocus="SomeJavaScriptCode">
如可在一个表单中输入如下代码:
" onfocus=javascript:alert(1)>
还原到源代码中则可能是:
<input type="text" name="lastname" onfocus=javascript:alert(1)>
假如输入的 script 被服务端代码破坏我们可以换其他的闭合标签,如:
?keyword="> <a href=javascript:alert('xss') > xss</a>
有时候大小写混写,如把script写成sCript,可以绕过服务器端的破坏代码。
如果服务器代码的破坏效果是删除标签内的关键字,我们就可以采用双写(即把关键字包在中间,删掉一个还剩下那个关键字),如:
"><sscriptcript>alert(1)</sscriptcript>
被服务器端的代码破坏掉后的代码为:
"><script>alert(1)</script>
总之呢,在做XSS的题的时候首先要输入一串普通的字符串,看源代码,看看是什么闭合方式,再输入js代码,再看源代码,猜测服务器端的PHP代码,想出合理的攻击语句
今天先写到这里,明天还要爬起来看奥运,各位看官老爷们再见!
|