XCTF 攻防世界 Web題的基本知識點

XCTF 攻防世界 Web題的基本知識點和解題思路

  1. 大多數狀況下,robots協議指的就是robots.txt
  2. index.php的備份文件:/index.php.bak
  3. 頁面中若是出現了不能按的按鈕,多是代碼中設置了disable參數,將網頁源代碼中的disable=""刪除或者改成false(注意:safari瀏覽器可能沒法方便的直接修改源代碼,能夠換爲firefox瀏覽器)
  4. 遇到php的源代碼,注重分析,若是隻是簡短的幾行代碼,而且有相似於$a, $b這樣的變量,能夠直接在url的後面添加上 /?a=…&b=…進行嘗試
  5. 若是題目中要求用GET方法發送一個值時,能夠直接在url的後面添加 /?a=…(若是是POST方法,firefox瀏覽器使用hackbar插件能夠很容易的解決;固然,利用burpsuite攔截髮包也是能夠的,注意:在用burpsuite進行POST請求的時候,須要加上Content-Type: application/x-www-form-urlencoded)
  6. X-Forwarded-For和Referer是很重要的兩個參數,用於請求的僞造。若是題目中必定要某個ip地址的話,可使用X-Forwarded-For參數指定ip地址,如X-Forwarded-For: 127.0.0.1; Referer參數用於僞造來源,如Referer: https://www.baidu.com
  7. 題目中出現了一句話木馬,如<?php @eval($_POST['shell']); ?>,則能夠嘗試用蟻劍(AntSword)進行鏈接,鏈接密碼即爲shell
  8. 命令執行漏洞一般是因爲沒有WAF,如常常出現的ping命令,能夠在輸入框中嘗試 ping 127.0.0.1 | find / -name 「flag」,利用鏈接管道符能夠顯示多條命令執行的結果
  9. 題目中出現了\x這樣的16進制,能夠先嚐試將16進制轉爲10進制,再轉爲相應的ASCII碼
  10. 若是知道了php的版本,則進行搜索此版本對應的漏洞,找到利用漏洞PoC代碼,進行嘗試
  11. 看到php代碼中有相似$ page的變量以及include($page)這樣的語句,能夠嘗試構造 /?page=php://input 僞協議,若是php代碼中有strstr區分大小寫的函數),經過直接大小寫,/?page=PhP://input繞過
  12. 在題目的網頁中(如index.php頁面),發現後面有id=1這樣的形式,在暫時嘗試了其餘方法無果或者沒有思路的狀況下,能夠嘗試暴力破解。常常使用burpsuite的Intruder模塊進行暴力破解,選擇payload或者導入字典
  13. 若是題目頁面中只有一張圖片的話,查看網頁的源代碼,尋找信息,在源代碼中可能隱含flag的文件信息,如hint.php, flag.php,而後在url的最後添加?file=hint.php進行嘗試
  14. 看到搜索框,首先想到的確定是SQL注入和XSS注入,SQL測試:一般先輸入1,看看有沒有返回值;XSS測試:輸入「>< script>alert(1)< /script><」,看有沒有回顯的框彈出。若是肯定爲是SQL注入,能夠嘗試進行手動注入(一步一步的進行深刻);也能夠攔截抓包進行POST請求,而後將請求保存爲request.txt文件(文件名隨意取),經過自動化工具sqlmap進行自動注入:sqlmap -r request.txt --dbs,在發現了數據庫的名稱以後,能夠嘗試 sqlmap -r request.txt -D 數據庫名 --dump,直接將數據庫的內容都dump出來。(注意:在實際的操做中,不多有徹底藉助sqlmap進行注入的狀況,一般都是手動注入和sqlmap相結合)
  15. 遇到打不開的網頁時,能夠將後綴名改成html,嘗試打開
  16. 若是題目中的script代碼的最後是eval(_),將eval改成alert,在回顯以後的代碼裏尋找和flag相關的,如正則表達式,放在控制檯裏運行一下,可能會看到flag的信息
  17. 在php代碼裏,__表明魔術方法,若是php代碼中出現了__wakeup()方法,則可能跟php的序列化和反序列化相關。反序列化,首先要序列化。若是代碼足夠簡單,則能夠在代碼最後加上 $a=new 類名(); echo(serialize( $a)); 將序列化的結果顯示出來。要繞過__wakeup()方法,能夠將序列化字符串中的對象個數修改一下,最後將反序列化的結果添加到url的最後
  18. 遇到文件上傳漏洞的題目,能夠先準備準備一句話木立刻傳,如<?php highlight_file(_FILE_); system($_GET['cmd']); ?>。上傳的文件首先能夠嘗試更改文件名,如1.php.jpg,若是不行,則能夠在上傳的同時,利用burpsuite攔截抓包,將文件名更改一下,大多數狀況下就能夠繞過過濾。上傳成功後,則能夠在request請求的最後(與http頭的參數隔一行)加上 <?php system('ls'); ?>,繼續send,會看到顯示的目錄,經過更改命令一步步的深刻,獲取flag信息
  19. 查看php源文件的話,能夠在最後加上s,也能夠在url的最前面加上view-source: (注意:safari中時沒法使用view-source顯示源代碼的,要使用firefox)
  20. python模塊注入的問題,首先在url的最後加上 /{ {7+7}} 進行判斷,若是頁面中顯示了相加的和,則說明存在服務器模版注入(SSTI),在url的最後添加 /{ {config.items()}},顯示出全部變量的信息,而後構造 { {''.__class__.__mro__[2].__subclasses__()[59].__init__.func_globals.linecache.os.popen('ls').read()}},看到flag信息後,繼續構造{ {''.__class__.__mro__[2].__subclasses__()[59].__init__.func_globals.linecache.os.popen('cat fl4g').read()}},就能夠獲取到flag了
相關文章
相關標籤/搜索