PHP漏洞利用和滲透基礎入門 2

2021-09-24 17:44:21 字數 1349 閱讀 5831

$sql='select * from users where username='$username' and password='$password';
**邏輯(建議閱讀)來自:

假如我們想登入username為1的使用者

我們應該怎麼構建的sql語句???

如下例子

select * from users where username=1 and password=正確密碼 

select * from users where username=1

當然我們不知道正確密碼我們可以試試第二種怎麼實現(遮蔽 and password=***

mysql怎麼實現注釋遮蔽那?? 答案就是#號就是注釋號 #後面的內容都被注釋yes!! 我們找到了 現在開始構造語句

select * from users where username=1 # and password=***

這個語句等效於

select * from users where username=1

那麼我們怎麼又不是去提交sql語句給後端

我們看看後端**

<?php

include_once("function/database.php");

// $username = $_post['username'];

// $password = $_post['password'];

$username = addslashes($_post['username']);

$password = addslashes($_post['password']);

getconnect();

$loginsql = "select * from users where username='$username' and password='$password'";

..... (省略

我們提交的賬戶就是變數 username 密碼就是變數 password

但是這裡使用addslashes函式(函式過濾了 單引號(』)雙引號(")反斜槓(\))

呵???這就剛剛好沒遮蔽#號我們你像推理可以得出

賬戶應該是 1

密碼可以隨便填(因為被#號注釋了 導致這個邏輯始終成立

1.替換引數各種敏感字元(# 』 or and 等) 僅僅用addslashes函式是不安全的

2.使用pdo分兩次發生sql語句

現在程式的php sql注入機率很小,加上如果使用pdo 就基本不可能了

漏洞利用與滲透測試基礎(PWN基礎知識)

上面兩張圖是linux下的。ollydbg是乙個windows下用來反彙編以及動態除錯的工具,這裡我使用的吾愛破解版的ollydbg。我們可以看到介面有四大塊,載入可執行檔案後得到以下介面 左上角 反彙編 左下角 記憶體空間 右上角 暫存器 右下角 棧 ollydbg比較好用的幾個功能有 在反彙編視...

談談PHP反序列基礎和簡單利用

序列化其實就是將資料轉化成一種可逆的資料結構,自然,逆向的過程就叫做反序列化。php 將資料序列化和反序列化會用到兩個函式 serialize將物件格式化成有序的字串 unserialize將字串還原成原來的物件 序列化的目的是方便資料的傳輸和儲存,在php中,序列化和反序列化一般用做快取,比如se...

django基礎入門 2 建立專案和應用

django簡單工作流程如下,瀏覽器發出請求,web伺服器接受瀏覽器請求,將請求的具體處理交給django框架,django框架通過將客戶端請求的url和django配置的url正則進行匹配,來決定呼叫那個檢視。檢視中通過模型和模板相關操作,渲染出最終的html頁面,再傳送給瀏覽器顯示。在當前使用者...