不想做黑客的安全测试不是优秀的cybercop。怎么才能算是优秀的cybercop呢?那么就就必须学会或懂的黑客惯用一些手法与业内所流行的一些漏洞。
加QQ群:136611782
1、常见的几种攻击手段
CC攻击
XSS攻击
CSRF攻击
SQL注入攻击
TCP全连接攻击
框架重定向攻击
惯性思维逻辑攻击
WEB Server多连接攻击
2、选择一个谈谈期原理
CSRF攻击 通过跨站点请求伪造盗取他人信息,常见方式有
http://javame.cnblogs.com/login?cas=web-cas&service=http://calhost:8080/test-web
模拟常用URL,通过该链接登陆后跳转自定义网站,进行数据截取。
或者通过框架伪造链接模拟与你登陆相似的网页
http://javame.cnblogs.com/login?user=%27%22%3E%3Ciframe+src%3Dhttp%3A%2F%2Fcalhost:8080%3Etest-web%3E
你在伪造网页登陆,会将本人该账户密码发送本人服务器。
3、谈谈怎么预防此类攻击
1/系统强制屏蔽某些特殊符
2/将一些常用敏感词汇进行转码
3/选择优秀框架
4/对重要会话进行唯一标示规范
5/根据重要业务避免使用GET方式提交请求
4、举一个攻击型案例
《某听书网站系统漏洞,利用抓包拼接方式获取网站资源》
http://www.cnblogs.com/Javame/p/3681401.html
5、安全测试的工具都有哪些
常用工具有:
Appscan、N-Stalker、TamperIESetup
工具只能帮我们扫描漏洞,具体的测试还需要我们来进行,怎么说工具是死的人是活的,工具的思维永远跟不上黑客的思维。
6、怎么避免安全问题
这个世界上没有完美无缺的网站,我们只能尽可能减少缺陷的粒度,至于怎么避免安全问题,建议项目从立项起将安全问题列入总纲。从代码层严格要求编码规范,到项目部署网络层规划。
《华为Java编程军规,每季度代码验收标准》
http://www.cnblogs.com/Javame/p/3513670.html
7、举几个例子
1/网络钓鱼是一个统称,代表攻击者试图欺骗用户提供个人隐私信息,以便身份欺骗。通过框架钓鱼与上述链接注入类似,攻击者注入frame或iframe标签,其中含有类似受攻击Web应用的恶意源(SRC)属性,不小心的用户很可能浏览它,但并不知情的情况下访问并离开原始Web应用系统页面,转而定向到恶意Web网站。随后,攻击者便可以轻易诱惑用户提交含有个人信息的表单,或直接通过要求重新登录来获取他的登录凭证。 通过框架钓鱼可以将注入的伪造页面嵌入在原始Web应用页面中,这样对攻击者非常有帮助,因为他的钓鱼企图会披上更可信赖的外表。
GET /javame/os/wonterAction.do? &OsType=search&flagType=adminFlag'"><iframe%20src=http://javame.cnblogs.com> HTTP/1.0
Cookie: JSESSIONID1=1542faewE8Cslodwed4325PyPvVOoSHA:-1;
... ...
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Host: 192.168.3.65
Connection: Keep-Alive HTTP/1.1 200 OK
Content-Length: 18376 Date: Tue, 25 Aug 2009 02:34:39 GMT
Keep-Alive: timeout=4, max=10000
Connection: Keep-Alive
<html>
<head>… …
<input type="hidden" name="flagType" value="adminFlag'"><iframe src=http://javame.cnblogs.com>" />
......
上面已经提到了解决这类注入问题的根本方法在于对用户输入的数据进行必要的过滤处理,尤其对于准备拼入返回结果HTML中的参数。对于链接注入和通过框架钓鱼这类特定注入行为也不例外,只需要应用代码对这些参数的数据进行合法性检查,并对HTML保留字符进行转义。
2/解密的登录请求 这种缺陷比较好理解,说明应用系统在处理登录业务时,采用了明文方式来传递用户请求,而没有通过类似SSL等方式来加密传输这些敏感数据。任何以明文传给服务器的信息都可能被窃,稍后可被攻击者用来身份欺骗或身份伪装。类似的根据准金融业务系统对信息安全的要求,除用户登录使用的账户信息外,很多数据都有加密传输的必要。
POST /wy/login HTTP/1.0
Cookie: JSESSIONID=KWIjii1221JIIIW223JIKBIIiiigg!-1187336132
Content-Length: 116
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*
Referer: http://lcalhost:8080/wy/login.jsp
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)Host: 192.168.180.36:7001
Pragma: no-cache
Connection: Keep-Alive
title=%CE%B2%C6%D3%CF%B5&BiyId=2&logintype=&username=test&userPassw=test&okey=0
HTTP/1.1 200 OK
Content-Length: 19025 Date: Wed, 02 Sep 2009 06:21:04 GMT
Pragma: No-cache
Server: WebLogic WebLogic Server 8.1 Thu Mar 20 23:06:05 PST 2003 24662
Content-Type: text/html;charset=GBK
Expires: 0
Cache-Control: no-cacheConnection: Close
对于这类需要避免网络传输层嗅探的敏感业务,应用系统非常有必要对用户提交的敏感数据进行必要的加密,采用SSL这类通用的传输层安全规范能够很好的避免数据遭到截取、串改、转发。同时,应用系统自定义的应用层消息加密也可以达到同样的目的。