php審計dvwa(php審計代碼教程)

本文目錄一覽:

如何使用docker中的php環境來調試代碼

Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)

摘要:Docker容器化技術在過去的2015年得到了大面積的普及應用,特別是以靈雀雲、數人云、阿里雲以及阿里百川TAE2.0等為代表的服務商的推動,可以預見2016會是雲服務大爆發的一年,會有越來越多的互聯網企業將自己的業務部署到基於Docker容器的環境里來。

Docker容器化技術在過去的2015年得到了大面積的普及應用,特別是以靈雀雲、數人云、阿里雲以及阿里百川TAE2.0等為代表的服務商的推動,可以預見2016會是雲服務大爆發的一年,會有越來越多的互聯網企業將自己的業務部署到基於Docker容器的環境里來。

本文以 DVWA 部署為例,來講解PHP環境部署+基於XDEBUG調試環境的容器化解決方案。

Github代碼

segmentfault參考鏈接

Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)

創建目錄

基礎目錄

~/dvwa/data 存放MySQL數據庫

~/dvwa/htdocs 項目代碼

~/dvwa/log 存放所有輸出log

從代碼倉庫構建

cd ~

git clone dvwa

創建這些目錄

mkdir ~/dvwa ~/dvwa/data ~/dvwa/data/mysql ~/dvwa/log ~/dvwa/log/nginx ~/dvwa/log/php ~/dvwa/htdocs

下載鏡像及構建

cd ~/dvwa/htdocs/dvawfiles

make pull

make dl

make build

下載代碼

cd ~/dvwa/htdocs

git clone dvwa_app

IDE調試配置

Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)Docker容器化PHP開發環境搭建-DVWA (含xdebug調試)

綁定域名

“`

sudo vi /etc/hosts

192.168.99.100

按流程用phpstudy裝dvwa為什麼最後127.0.0.1登不上

首先下載phpstudy和DVWA。

將DVWA解壓後複製到phpstudy目錄下的WWW目錄。如圖

用記事本打開DVWA/config/config.inc.php文件,修改密碼。

保存。

訪問地址,點擊login

接下來輸入帳號和密碼。默認為:admin password

登入成功。

轉載原文:

dvwa怎麼查看low等級代碼

在DVWA中選擇Upload,首先分析low級別的代碼:

首先站點通過upload參數以POST方式來接收被上傳的文件,然後指定文件上傳路徑為“網站根目錄/hackable/uploads”,文件上傳到網站之後的名字仍沿用原先的名字。

接下來利用$_FILES變量來獲取上傳文件的各種信息。$_FILES變量與$_GET、$_POST類似,它專門用於獲取上傳文件的各種信息。

“$_FILES[‘uploaded’][‘name’]”,用於獲取客戶端文件的原名稱,

“$_FILES[‘uploaded’][‘tmp_name’]”, 用於獲取文件被上傳後在服務端儲存的臨時文件名。

語句“move_uploaded_file($_FILES[‘uploaded’][‘tmp_name’], $target_path)”表示將上傳後的文件移動到變量$target_path所指定的新位置,如果這個函數成功執行,則輸出“succesfully uploaded!”,否則輸出“Your image was not uploaded”。

可以看出,在low級別中,沒有對上傳的文件進行任何過濾,因而我們可以直接將php木馬文件上傳到服務器中。比如上傳一個名為an75.php的webshell文件,文件上傳之後的路徑

網絡安全去應該去哪裡學習呢?。

只要想學習哪裡學習都是有效果的。但需要結合自身的一些特點來調整學習方向,這樣學習起來會事半功倍,以下推薦3種學習線路,適用於不同的學習人群;

方法1:先學習編程,然後學習Web滲透及工具使用等

適用人群:有一定的代碼基礎的小夥伴

(1)基礎部分

基礎部分需要學習以下內容:

(1.1)計算機網絡 :

重點學習OSI、TCP/IP模型,網絡協議,網絡設備工作原理等內容,其他內容快速通讀;

【推薦書籍】《網絡是怎樣連接的_戶根勤》一書,簡明扼要,淺顯易懂,初學者的福音;如果覺得不夠專業,可以學習圖靈設計叢書的《HTTP權威指南》;

(1.2)Linux系統及命令 :

由於目前市面上的Web服務器7成都是運行在Linux系統之上,如果要學習滲透Web系統,最起碼還是要對linux系統非常熟悉,常見的操作命令需要學會;

學習建議:學習常見的10%左右的命令適用於90%的工作場景,和office軟件一樣,掌握最常用的10%的功能,基本日常使用沒什麼問題,遇到不會的,再去找相關資料;常見的linux命令也就50-60個,很多小白囫圇吞棗什麼命令都學,這樣其實根本記不住。

【推薦書籍】Linux Basics for Hackers;

(1.3)Web框架 :

熟悉web框架的內容,前端HTML,JS等腳本語言了解即可,後端PHP語言重點學習,切記不要按照開發的思路去學習語言,php最低要求會讀懂代碼即可,當然會寫最好,但不是開發,但不是開發,但不是開發,重要的事情說三遍;

數據庫:

需要學習SQL語法,利用常見的數據庫MySQL學習對應的數據庫語法,也是一樣,SQL的一些些高級語法可以了解,如果沒有時間完全不學也不影響後續學習,畢竟大家不是做數據庫分析師,不需要學太深;

(2)Web安全

(2.1)Web滲透

掌握OWASP排名靠前的10餘種常見的Web漏洞的原理、利用、防禦等知識點,然後配以一定的靶場練習即可;有的小白可能會問,去哪裡找資料,建議可以直接買一本較為權威的書籍,配合一些網上的免費視頻系統學習,然後利用開源的靶場輔助練習即可;

【推薦書籍】白帽子講Web安全(阿里白帽子黑客大神道哥作品)

【推薦靶場】常見的靶場都可以上github平台搜索,推薦以下靶場DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu等,有些是綜合靶場,有些是專門針對某款漏洞的靶場;

(2.2)工具學習

Web滲透階段還是需要掌握一些必要的工具,工具的學習b站上的視頻比較多,挑選一些講解得不錯的視頻看看,不要一個工具看很多視頻,大多數視頻是重複的,且很浪費時間;

主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的練習完全可以利用上面的開源靶場去練習,足夠了;

練習差不多了,可以去SRC平台滲透真實的站點,看看是否有突破,如果涉及到需要繞過WAF的,需要針對繞WAF專門去學習,姿勢也不是特別多,系統性學習學習,然後多總結經驗,更上一層樓;

(2.2)自動化滲透

自動化滲透需要掌握一門語言,且需要熟練運用,可以是任何一門自己已經掌握得很熟悉的語言,都可以,如果沒有一門掌握很好的,那我推薦學習python,最主要原因是學起來簡單,模塊也比較多,寫一些腳本和工具非常方便;

雖說不懂自動化滲透不影響入門和就業,但是會影響職業的發展,學習python不需要掌握很多不需要的模塊,也不需要開發成千上萬行的代碼,僅利用它編寫一些工具和腳本,少則10幾行代碼,多則1-200行代碼,一般代碼量相對開發人員已經少得不能再少了,例如一個精簡的域名爬蟲代碼核心代碼就1-20行而已;

幾天時間學習一下python的語法,有代碼基礎的,最快可能一天就可以學習完python的語法,因為語言都是相通的,但是學習語言最快的就是寫代碼,別無他法;接下來可以開始嘗試寫一些常見的工具,如爬蟲、端口探測、數據包核心內容提取、內網活躍主機掃描等,此類代碼網上一搜一大把;然後再寫一些POC和EXP腳本,以靶場為練習即可;有的小夥伴可能又要問了,什麼是POC和EXP,自己百度去,養成動手的好習慣啦;

(2.3)代碼審計

此處內容要求代碼能力比較高,因此如果代碼能力較弱,可以先跳過此部分的學習,不影響滲透道路上的學習和發展。

但是如果希望在Web滲透上需要走得再遠一些,需要精通一門後台開發語言,推薦php,因為後台採用php開發的網站佔據最大,當然你還精通python、asp、java等語言,那恭喜你,你已經具備很好的基礎了;

代碼審計顧名思義,審計別人網站或者系統的源代碼,通過審計源代碼或者代碼環境的方式去審計系統是否存在漏洞(屬於白盒測試範疇)

那具體要怎麼學習呢?學習的具體內容按照順序列舉如下 :

掌握php一些危險函數和安全配置;

熟悉代碼審計的流程和方法;

掌握1-2個代碼審計工具,如seay等;

掌握常見的功能審計法;(推薦審計一下AuditDemo,讓你產生自信)

常見CMS框架審計(難度大); 代碼審計有一本國外的書籍《代碼審計:企業級Web代碼安全架構》,當然有空的時候可以去翻翻,建議還是在b站上找一套系統介紹的課程去學習;github上找到AuditDemo,下載源碼,搭建在本地虛擬機,然後利用工具和審計方法,審計AuditDemo中存在的10個漏洞,難度分布符合正態分布,可以挑戰一下;

至於CMS框架審計,可以去一些CMS官方網站,下載一些歷史存在漏洞的版本去審計,框架的學習利用官方網站的使用手冊即可,如ThinkPHP3.2版本是存在一些漏洞,可以嘗試讀懂代碼;但是切記不要一上來就看代碼,因為CMS框架的代碼量比較大,如果不系統先學習框架,基本屬於看不懂狀態;學習框架後能夠具備寫簡單的POC,按照代碼審計方法結合工具一起審計框架;其實也沒沒想象中的那麼難,如果你是開發人員轉行的,恭喜你,你已經具備代碼審計的先天性優勢。

可能有人會問:“我代碼很差,不學習代碼審計行不行?”其實代碼審計不是學習網絡安全的必要條件,能夠掌握最好,掌握不了也不影響後續的學習和就業,但你需要選擇一個階段,練習得更專業精通一些,如web滲透或者內網滲透,再或者是自動化滲透;

(3)內網安全

恭喜你,如果學到這裡,你基本可以從事一份網絡安全相關的工作,比如滲透測試、Web滲透、安全服務、安全分析等崗位;

如果想就業面更寬一些,技術競爭更強一些,需要再學習內網滲透相關知識;

內網的知識難度稍微偏大一些,這個和目前市面上的學習資料還有靶場有一定的關係;內網主要學習的內容主要有:內網信息收集、域滲透、代理和轉發技術、應用和系統提權、工具學習、免殺技術、APT等等;

可以購買《內網安全攻防:滲透測試實戰指南》,這本書寫得還不錯,國內為數不多講內網的書籍,以書籍目錄為主線,然後配合工具和靶場去練習即可;

那去哪裡可以下載到內網靶場?如果你能力夠強,電腦配置高,可以自己利用虛擬機搭建內網環境,一般需要3台以上的虛擬機;你也可以到國外找一些內網靶場使用,有一些需要收費的靶場還可以;

(4)滲透拓展

滲透拓展部分,和具體工作崗位聯繫也比較緊密,盡量要求掌握,主要有日誌分析、安全加固、應急響應、等保測評等內容;其中重點掌握前三部分,這塊的資料網絡上也不多,也沒有多少成型的書籍資料,可通過行業相關的技術群或者行業分享的資料去學習即可,能學到這一步,基本上已經算入門成功,學習日誌分析、安全加固、應急響應三部分的知識也相對較為容易。

方法2:先學習Web滲透及工具,然後再學習編程

適用人群:代碼能力很弱,或者根本沒有什麼代碼能力,其他基礎也相對較差的小夥伴

基礎需要打好,再學習Web滲透比如linux系統、計算機網絡、一點點的Web框架、數據庫還是需要提前掌握;

像php語言、自動化滲透和代碼審計部分內容,可以放在最後,當學習完畢前面知識後,也相當入門後,再來學習語言,相對會容易一些;

【優先推薦】方法2,對於小白來說,代碼基礎通常較弱,很多很多小白會倒在前期學習語言上,所以推薦方法2的學習,先學習web滲透和工具,也比較有意思,容易保持一個高漲的學習動力和熱情,具體學習內容我就不說了,請小夥伴們參照方法1即可。

方法3:選擇一些適合自己的課程學習

適用人群:需要體系化學習、增強實戰能力的小夥伴

具體根據自身條件來講,如果你自學能力較差,那建議選擇課程學習,網上各大平台等都有很多各式各樣的課程,是可以更快幫助你迅速入門的,然後再根據自己自身所欠缺的方面,不斷去完善和學習,最後達到你所要的優秀水平。

學習書籍推薦如下:

【基礎階段】

Linux Basics for Hackers(中文翻譯稿)

Wireshark網絡分析(完整掃描版)

精通正則表達式(中文第3版)

圖解HTTP 彩色版

[密碼學介紹].楊新.中文第二版

網絡是怎樣連接的_戶根勤

[PHP與MySQL程序設計(第4版)].W.Jason.Gilmore

【web滲透階段】

web安全攻防滲透測試實戰指南

白帽子講Web安全

Web安全深度

【自動化滲透階段】

Python編程快速上手-讓繁瑣工作自動化

【代碼審計階段】

代碼審計:企業級Web代碼安全架構

【內網滲透階段】

內網安全攻防:滲透測試實戰指南

社會工程防範釣魚欺詐

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/246427.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:15
下一篇 2024-12-12 13:15

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29

發表回復

登錄後才能評論