女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何針對Mysql漏洞測試您自己的Web服務器

454398 ? 來源:wv ? 2019-09-26 15:31 ? 次閱讀

第1步:設置測試環境

要測試代碼,您應該設置一個測試環境。可以在計算機上使用xampp或lampp完成此操作。當然,您可以自己用php設置一個Apache網絡服務器。

您將需要一個網絡服務器,一個mysql數據庫和一個運行中的php解釋器來執行代碼。

步驟2:示例數據庫

對于我們的測試案例,我們使用一個非常基本的數據庫,其中有兩個用戶。使用md5算法保護密碼。只需在數據庫上運行以下mysql代碼即可創建表:

SET SQL_MODE = “NO_AUTO_VALUE_ON_ZERO”;

SET AUTOCOMMIT = 0;

START TRANSACTION;

SET time_zone = “+00:00”;

CREATE TABLE IF NOT EXISTS `user` (

`id` bigint(15) NOT NULL,

`email` varchar(255) NOT NULL,

`password` varchar(32) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

INSERT INTO `user` (`id`, `email`, `password`) VALUES

(1, ‘ad[email protected]’, ‘b655e3f4ae881514c4896b9cd707e4d2’),

(2, ‘[email protected]’, ‘5d41402abc4b2a76b9719d911017c592’);

ALTER TABLE `user`

ADD PRIMARY KEY (`id`);

ALTER TABLE `user`

MODIFY `id` bigint(15) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;COMMIT;

步驟3:關于密碼安全性的簡短介紹

全世界的計算能力正在飛速增長,md5不再是強大的哈希算法。所使用的哈希是使用以下密碼生成的:

b655e3f4ae881514c4896b9cd707e4d2 = top secret password that will never be cracked that fast

5d41402abc4b2a76b9719d911017c592 = hello

由于存在彩虹表之類的東西,即使google本身也是一個很好的密碼破解機。當您搜索“ 5d41402abc4b2a76b9719d911017c592”時,第一個結果是明文密碼。當您在Google中搜索“ b655e3f4ae881514c4896b9cd707e4d2”時,由于輸入字符串太長而無法使用蠻力方法破解,因此您將不會獲得任何結果。

因此:請使用在任何詞典中都不會出現的長密碼!/p》

步驟4:示例代碼

如何針對Mysql漏洞測試您自己的Web服務器

出于測試原因,我編寫了這個小腳本。它打開一個數據庫連接,提供一個表單,并嘗試在數據庫中查找與您輸入的憑據(電子郵件和密碼)匹配的用戶。只需將腳本保存在Web服務器上,然后將文件命名為“ mysql-injection.php”即可。當數據庫名稱不同時,可能必須為“ mysql_select_db”函數更新數據庫名稱:

error_reporting(E_ALL ^ E_DEPRECATED);

mysql_connect(‘localhost’, ‘root’, ‘’);

mysql_select_db(‘mysql-injection’);

if (!empty($_POST[‘email’]) && !empty($_POST[‘password’]))

{

$query = ‘SELECT * FROM `user` WHERE `email` = \’‘.$_POST[’email‘]。’\‘ AND `password` = \’‘.md5($_POST[’password‘])。’\‘’;

echo ‘Used query: ’,$query,‘’;

$resource = mysql_query($query);

$matches = mysql_num_rows($resource);

if ($matches 》 0)

{

$user = mysql_fetch_assoc($resource);

echo ‘Hello ’.$user[‘email’]。‘!’;

}

else

{

echo ‘Invalid credentials!’;

}

}

?》

Log in to get privileges!

Mail:

Password:

步驟5:測試腳本

要開始使用,只需在Web瀏覽器上調用腳本即可。在我的情況下,該網址為http://sand.box:8081/mysql-injection.php,因為我將“ sand.box”路由為“ 127.0.0.1”。您只需調用http://sand.box:8081/mysql-injection.php或http://sand.box:8081/mysql-injection.php即可使其正常工作。

我們現在可以使用以下憑據測試登錄:

[email protected]:top secret password that will never be cracked that fast

[email protected]:hello

如您在屏幕快照中所見,腳本返回“ Hello ”以證明您的登錄憑據正確。使用任何其他組合可獲得“無效的憑據!”錯誤。

這是有效的用戶身份驗證。但是它非常危險。請查看下一步,了解原因。

步驟6:幕后花絮

由于腳本輸出了用于選擇正確用戶的數據庫查詢,因此您可以看到背后發生了什么現場。當您以管理員身份登錄時,以下查詢:

‘SELECT * FROM `user` WHERE `email` = \’‘.$_POST[’email‘]。’\‘ AND `password` = \’‘.md5($_POST[’password‘])。’\‘’

計算為:

‘SELECT * FROM `user` WHERE `email` = \’[email protected]\‘ AND `password` = \’‘.md5(’top secret password that will never be cracked that fast‘)。’\‘’

,然后計算為:

‘SELECT * FROM `user` WHERE `email` = \’[email protected]\‘ AND `password` = \’b655e3f4ae881514c4896b9cd707e4d2\‘’

,發送到mysql數據庫的是:

SELECT * FROM `user` WHERE `email` = ‘[email protected]’ AND `password` = ‘b655e3f4ae881514c4896b9cd707e4d2’

因此,只需通過電子郵件地址和密碼選擇一個用戶。在這種情況下,這是對郵件驗證的可靠期望。變量$ _POST [‘email’]在附加到查詢之前是不安全的,因此我們可以在此處注入很多邪惡的東西。 $ _POST [‘password’]變量在被隱式存儲到數據庫查詢之前被傳遞給md5(),因此這是“意外的安全”,因為md5()僅返回數字和字符,沒有任何東西會使我們的查詢崩潰。 》

步驟7:破解!

正如我們在上一步中了解到的那樣,$ _ POST [‘email’]是我們的后門。因此,當您輸入以下電子郵件時,您可以以所需的任何用戶身份登錄。對于ID為1的用戶:

te[email protected]‘ OR `id` = 1 OR 1 = ’

對于ID為2的用戶:

[email protected]‘ OR `id` = 2 OR 1 = ’

如您所見,使用的mysql查詢如下:

SELECT * FROM `user` WHERE `email` = ‘[email protected]’ OR `id` = 1 OR 1 = ‘’ AND `password` = ‘098f6bcd4621d373cade4e832627b4f6’

由于查詢中沒有括號,因此我們可以通過在電子郵件中傳遞一個‘來停止字符串。之后,我們可以修改查詢本身。因此,我們僅添加另一個與用戶ID相關的“ OR”條件。這使電子郵件和密碼已過時,因為一旦“ OR”條件為真,mysql就會停止檢查條件。因此,如果我們的數據庫中有一個ID為“ 1”的用戶,我們便已登錄。

步驟8:保護您的代碼

要確保此代碼安全,只需轉義用戶輸入即可。例如,可以使用mysql_real_escape_string方法來完成此操作。另一個功能可能是斜杠。因此,“安全”解決方案將使用:

mysql_real_escape_string($_POST[’email‘])

而不是

$_POST[’email‘]

所以這是最終的php代碼:

$query = ’SELECT * FROM `user` WHERE `email` = \‘’.mysql_real_escape_string($_POST[‘email’])。‘\’ AND `password` = \‘’.md5($_POST[‘password’])。‘\’‘;

計算的查詢為:

SELECT * FROM `user` WHERE `email` = ’[email protected]\‘ OR `id` = 1 OR 1 = \’‘ AND `password` = ’098f6bcd4621d373cade4e832627b4f6‘

因此,您可以看到,字符串中的單引號現在已轉義,不再結束mysql字符串。這將導致查詢搜索以下電子郵件地址:

[email protected]\’ OR `id` = 1 OR 1 = \‘

當然,這將失敗,因為數據庫中沒有匹配的電子郵件。

第9步:僅僅為了獲得一個想法

編寫此指令是為了在一個非常基本的情況下獲得mysql注入的想法。在2015年,您不會自己編寫php應用程序,而是使用可以為您處理大部分安全性和數據庫內容的框架和庫。但是您應該知道在幕后發生了什么事,以便快速,安全地編寫代碼。

例如,一個好的解決方案是使用symfony2框架。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web服務器
    +關注

    關注

    0

    文章

    138

    瀏覽量

    24753
  • 漏洞
    +關注

    關注

    0

    文章

    205

    瀏覽量

    15625
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何配置Linux防火墻和Web服務器

    在當今數字化時代,網絡安全顯得尤為重要。Linux作為一種開源操作系統,廣泛應用于服務器管理和網絡配置中。本篇文章將詳細介紹如何配置Linux防火墻和Web服務器,確保內網與外網的安全訪問。同時,我們將探討如何通過SSH遠程管理
    的頭像 發表于 05-24 15:26 ?427次閱讀
    如何配置Linux防火墻和<b class='flag-5'>Web</b><b class='flag-5'>服務器</b>

    DeepSeek企業級部署服務器資源計算 以raksmart裸機云服務器為例

    以RakSmart裸機云服務器為例,針對DeepSeek企業級部署的服務器資源計算指南,涵蓋GPU/CPU/內存/存儲/網絡等核心維度的詳細計算方法與配置推薦,主機推薦小編為整理發布
    的頭像 發表于 03-21 10:17 ?284次閱讀

    服務器數據恢復—linux操作系統云服務器數據恢復案例

    某ECS網站服務器,linux操作系統+mysql數據庫。mysql數據庫采用innodb作為默認存儲引擎。 在執行數據庫版本更新測試時,操作人員誤誤將在本來應該在
    的頭像 發表于 02-10 18:00 ?339次閱讀
    <b class='flag-5'>服務器</b>數據恢復—linux操作系統云<b class='flag-5'>服務器</b>數據恢復案例

    使用 sysbench 對華為云 Flexus 服務器 X 做 Mysql 應用加速測評

    目前的廠商服務器中是特有獨一份的,應用加速包括 MySQL,Redis,NGINX 三種選擇。并且服務器性能較同類產品有了大量優化,今天咱們針對 M
    的頭像 發表于 01-23 17:26 ?303次閱讀
    使用 sysbench 對華為云 Flexus <b class='flag-5'>服務器</b> X 做 <b class='flag-5'>Mysql</b> 應用加速測評

    服務器 Flexus X 實例,Docker 集成搭建 DVWA 靶場

    )、文件上傳漏洞、命令注入等,旨在提供一個安全可控的環境,讓用戶能夠學習和實踐如何識別、利用和防御這些漏洞 華為云端口放行 ??服務器放行對應端口 8089 Docker 安裝并配置鏡像加速 1、購買
    的頭像 發表于 01-13 18:17 ?381次閱讀
    云<b class='flag-5'>服務器</b> Flexus X 實例,Docker 集成搭建 DVWA 靶場

    服務器 Flexus X 實例,鏡像切換與服務器壓力測試

    服務器 Flexus X 壓力測試 1、購買華為云 Flexus X 實例 Flexus云服務器X實例-華為云 (huaweicloud.com) ? 2、xshell 遠程連接服務器
    的頭像 發表于 01-03 09:23 ?356次閱讀
    云<b class='flag-5'>服務器</b> Flexus X 實例,鏡像切換與<b class='flag-5'>服務器</b>壓力<b class='flag-5'>測試</b>

    華為云 Flexus X 實例 MySQL 性能加速評測及對比

    X 實例加速 MySQL 測試 7 3.1 sysbench 簡介 8 3.2?Flexus 云服務器 X 實例安裝 sysbench8 3.3?Flexus X 加速 MySQL
    的頭像 發表于 12-25 17:10 ?489次閱讀
    華為云 Flexus X 實例 <b class='flag-5'>MySQL</b> 性能加速評測及對比

    服務器 Flexus X 實例 MySQL 應用加速測試

    文章目錄 目錄 文章目錄 ? 購買配置 ? 基本配置參考如下: ? 連接服務器 ? 查詢MySQL狀態 ? 啟動MySQL ? 添加配置 ? 添加密碼并修改權限 ? 性能測試 ? C#
    的頭像 發表于 12-24 12:19 ?454次閱讀
    云<b class='flag-5'>服務器</b> Flexus X 實例 <b class='flag-5'>MySQL</b> 應用加速<b class='flag-5'>測試</b>

    香港云服務器怎么部署MySQL數據庫?

    在香港云服務器上部署MySQL數據庫的步驟如下: 步驟 1: 更新軟件包列表 首先,確保軟件包列表是最新的。在終端中執行以下命令: sudo apt update 步驟 2: 安裝 MySQL
    的頭像 發表于 11-14 16:15 ?461次閱讀

    如何測試SMTP服務器功能

    在開始測試SMTP服務器功能之前,了解其重要性是關鍵。SMTP服務器是電子郵件系統的核心,負責郵件的發送和接收。如果SMTP服務器出現問題,可能會導致郵件延遲、丟失或無法發送,影響企業
    的頭像 發表于 10-30 17:31 ?1829次閱讀

    新加坡服務器的速度測試方法有哪些

    輸入ping加上服務器的IP地址或域名,然后觀察返回的結果,包括延遲和丟包情況。較低的響應時間表示較快的訪問速度。 Traceroute測試: Traceroute命令用于追蹤數據包從的設備到
    的頭像 發表于 10-14 14:55 ?465次閱讀

    使用NS1串口服務器HTTP模式上傳服務器數據

    HTTP協議工作于客戶端-服務端架構之上。瀏覽作為HTTP客戶端通過URL向HTTP服務端即Web服務器發送所有請求。
    的頭像 發表于 08-30 12:36 ?838次閱讀
    使用NS1串口<b class='flag-5'>服務器</b>HTTP模式上傳<b class='flag-5'>服務器</b>數據

    常見的服務器容器和漏洞類型匯總

    常見的服務器容器包括KubeSphere、Tomcat、Nginx、Apache等,它們在提供便捷的服務部署和靈活的網絡功能的同時,也可能存在著一定的安全風險。這些容器的漏洞可能導致數據泄露、權限被非授權訪問甚至系統被完全控制。
    的頭像 發表于 08-29 10:39 ?474次閱讀

    如何在阿里ECS服務器上架設自己的OpenVPN服務器

    需要自己架設服務器,讓現場的IR615路由連接自己服務器。能通過自己
    發表于 07-25 06:14

    如何使用espconn api實現一個Web服務器

    我正在嘗試使用 espconn api 實現一個 Web 服務器。 在一些請求之后,我收到將此錯誤(err1,超過最大時間值)寫入 uart,下一個espconn_send導致致命異常 (28)。 沒有關于此的文檔... 我該如何解決這個問題?
    發表于 07-18 07:46