1. 程式人生 > >Jarvis OJ–Login 透過MD5()下的SQL注入學習MD5加密

Jarvis OJ–Login 透過MD5()下的SQL注入學習MD5加密

哎,都是8年前的題目了,感覺自己進展好慢。

看解釋原理也不復雜,就是MD5()函式中引數為true時,輸出形式為原始二進位制格式,如果,找到一個字串MD5後得到的原始二進位制格式在SQL中拼接成 類似 ‘or ‘1xxx的形式就可以繞過了.文章中作者寫指令碼找到了一個字串ffifdyop滿足了我們的要求。php手冊對MD5()的介紹.

但是我還是有些疑惑,什麼叫原始二進位制格式?

先說說MD5的加密結果,百度百科上解釋的:演算法的輸出由四個32位分組組成,將這四個32位分組級聯後將生成一個128位雜湊值。

也就是說MD5的輸出結果應該是一個類似128位的01組成的值,不過我們平時將這個值以16進位制的字串格式輸出。注意是字串格式,也就是說在儲存時不是那個128位的雜湊值,而是將它轉換成字面值輸出。就比如數字1儲存在計算機裡儲存為00110001,但是這個00110001換算成十進位制並不是1。這就是字面值和儲存在計算裡的值的不同。

那麼PHP中的MD5(xxx,true)和MD5(xxx,false)到底有什麼不同。

第一個輸出的就是我們平時所看到的MD5計算後的值,32位,那第二個是什麼呢?

官方解釋是原始的二進位制格式的結果,是128位的01程式碼,其實再轉換成16進位制,就是32位,就是前面那個32位的字串,我們來驗證一下:

將那串32位16進位制數複製,開啟HXD,新建檔案,貼上寫入,看看效果:

可以看到當這串16進位制數以檔案的原始格式儲存時,就是後面那串’or’….

所以這道題目利用的是MD5(引數為true)的結果是原始二進位制格式,會再進行編碼,就會得到可以注入的字串,帶入到sql語句中完成繞過。而引數為false時得到的是二進位制格式的字面值值,本身就是字串,不會再進行編碼,帶入sql語句的就是那串16進位制字串,不會再編碼成其他形式。

不過我也是有些疑問,就是具體採用的哪種編碼轉換的,大部分編碼都相容ASCII碼,所以用不同的編碼基本上都可看到’or’這些部分,畢竟是對照ASCII碼轉換的,不過其他部分就是用不同的編碼不同格式:



另外這個16進位制轉字元用的是怎樣的格式,難道是ASCII碼碼:


編碼這裡確實不是很懂,誰瞭解的話幫我一下。

轉載指明出處


相關推薦

Jarvis OJLogin 透過MD5()SQL注入學習MD5加密

哎,都是8年前的題目了,感覺自己進展好慢。看解釋原理也不復雜,就是MD5()函式中引數為true時,輸出形式為原始二進位制格式,如果,找到一個字串MD5後得到的原始二進位制格式在SQL中拼接成 類似 ‘or ‘1xxx的形式就可以繞過了.文章中作者寫指令碼找到了一個字串ffi

Jarvis OJ-Login

Login 時間:2018年10月3日 彙報人:王禕潔 題目 題解 檢視頁面原始碼一無所獲,採取抓包,隨便輸入一串試一下。 抓個包, 發現後臺查詢password的語句,這是一個md5加密後的sql注入。 md5($pass, true): 引

一個繞過MD5SQL注入技巧

隱藏在註釋裡的提示: $password=$_POST['password']; $sql = "SELECT * FROM admin WHERE username = 'admin' and

sql注入md5($password,true)

       前幾天做了一道CTF的題目,是在”實驗吧“的一道簡單的web題目,當然這道題目很多人都解出來了,因為它的.php檔名就是答案。        他的網頁連結裡面的php檔名就是’ffifdyop.php‘。        上面的’ffifdyop‘就是我們

Mybatis框架SQL注入漏洞處理

來源:http://www.open-open.com/lib/view/open1474963603800.html            http://mp.weixin.qq.com/s?__biz=MjM5OTk2MTMxOQ==&mid=272782736

Java SQL注入學習筆記

1 簡介 文章主要內容包括: Java 持久層技術/框架簡單介紹 不同場景/框架下易導致 SQL 注入的寫法 如何避免和修復 SQL 注入 2 JDBC 介紹 JDBC: 全稱 Java Database Connectivity 是 Java 訪問資料庫的 API,

sql注入學習小結

sql注入小結 尾部處理小結 # /* ;%00 基礎資訊獲取小結 sql版本資訊 AND MID(VERSION(),1,1) = ‘5’ 還有一種看到的網上的大牛獲取資訊的方法 1 /!50094ea

預防SQL注入 學習筆記

SQL注入是個老話題,前一段中招了,所以總結了些注意事項,可以快速簡單的幫助防止大部分的注入攻擊 個人覺得引數化和資料庫許可權是相對簡單和有效的方案。 1、Domain Driver Design: 一種設計思想,強調識別可信任和不可信任呼叫,確認安全防範邊界,保證這個

DVWA平臺的sql注入學習

要用UNION語句,必須先知道後臺的查詢語句的查詢結果是多少列的,所以利用order by語句測試,此處就是將輸入“‘ or '1' = '1' order by 1 -- ”的order by 1部分改成2,3……當按照第二列排序時,不報錯,當按第三列排序時,報錯,因此可得到查詢結果是2列的。所以我們用UN

Mybatissql注入

以前只知道mybatis框架下,order by後面接的是列名是不能用#{},這樣不起效果,只能用${},這樣的話就可能產生sql注入。後來發現其實還有另外兩種情況也是類似的: 1.order by ${} asc 像這種情況最好的辦法是在java層面上做對映,比如說使用者只能輸入1-5,然後在程式碼層面

PHP的sql注入(密碼是md5加密的)

2018年6月20日記錄: 在實驗吧做了一道關於後臺登陸的題目,之前自己對php注入方面認識的不是很好,所以一直對注入這方面談虎色變,今天做了一下,其實自己好好分析整個過程,發現並不是特別難的,難得只是不敢動手去做: 我看到這個問題的時候一看

管中窺豹——框架SQL注入 Java篇

管中窺豹——框架下的SQL注入 Java篇 背景 SQL注入漏洞應該算是很有年代感的漏洞了,但是現在依然活躍在各大漏洞榜單中,究其原因還是資料和程式碼的問題。 SQL 語句在DBMS系統中作為表示式被解析,從儲存的內容中取出相應的資料, 而在應用系統中只能作為資料進行處理。 各個資料庫系統都或多或少的對標

Jarvis OJ - DD-Hello -Writeup

真的 ida os x jpg 又一 可執行 idt block 題目 Jarvis OJ - DD-Hello -Writeup 轉載請註明出處http://www.cnblogs.com/WangAoBo/p/7239216.html 題目: 分析: 第一次做這道

Jarvis OJ - [XMAN]level1 - Writeup

shellcode text ext recv 函數 rec spa 偏移 shell Jarvis OJ - [XMAN]level1 - Writeup M4x原創,轉載請表明出處http://www.cnblogs.com/WangAoBo/p/7594173.ht

SQL Server 學習系列】-- 獲取字符串中出現某字符的次數及字符某次出現的

nbsp pan urn ace server type char sel sql DECLARE @Str NVARCHAR(500) = ‘1_BB_CC_DD_AA_EE_YY_WW_HH_GG‘ --// 1. 獲取下劃線在字符串中出現的次數 SELECT LE

Jarvis OJ - [XMAN]level1 - Writeup——簡單shellcode利用

adding lan raft 截取 eight .sh close ott 作者 100分的pwn 簡單查看一下,果然還是比較簡單的 放到ida中查看一下,有明顯的溢出函數,並且在函數中打印出了字符串的地址,並且字符串比較長,沒有NX保護 所以我們很容易想到

Jarvis OJ - [XMAN]level3 - Writeup——rop2libc嘗試

但是 可執行程序 pre 問題 com pad arch 進行 sea 這次除了elf程序還附帶一個動態鏈接庫 先看一下,很一般的保護 思路分析 在ida中查看,可以確定通過read函數輸入buf進行溢出,但是並沒有看到合適的目標函數 但是用ida打開附帶的鏈接庫

[轉]Jarvis OJ- [XMAN]level2/3_x64-Writeup

article lan line get adg net asc 32位 lba 學弟寫的挺好的,我就直接轉過來了 原文鏈接:http://www.cnblogs.com/ZHijack/p/7940686.html 兩道64位棧溢出,思路和之前

哪些異常是RuntimeException?Sql異常屬於RuntimeException嗎?SpringSQL異常事務回滾

tail 好的 duplicate 代碼 blog 後拋 ase owa 接口文檔 一,為什麽框架中根本沒有對Exception的一般子類進行回滾配置,異常發生時,事務都進行了回滾 ,說好的只會對RuntimeException(Unchecked 非受檢異常)回滾呢?

Jarvis Oj Pwn 學習筆記-level1

ID lin send add 技術分享 r+ rar bsp strong 32位pwn題目 呈上鏈接: https://files.cnblogs.com/files/Magpie/level1.rar nc pwn2.jarvisoj.com 9877 先看一下保護: