sqli-labs-less-24 post型基於儲存的二次注入
Less-24
本關為二次排序注入的示範例。二次排序注入也稱為儲存型的注入,就是將可能導致
sql 注入的字元先存入到資料庫中,當再次呼叫這個惡意構造的字元時,就可以出發 sql 注入。
二次排序注入思路:
- 黑客通過構造資料的形式,在瀏覽器或者其他軟體中提交 HTTP 資料包文請求到服務
端進行處理,提交的資料包文請求中可能包含了黑客構造的 SQL 語句或者命令。 - 服務端應用程式會將黑客提交的資料資訊進行儲存,通常是儲存在資料庫中,儲存的
資料資訊的主要作用是為應用程式執行其他功能提供原始輸入資料並對客戶端請求做出響
應。 - 黑客向服務端傳送第二個與第一次不相同的請求資料資訊。
- 服務端接收到黑客提交的第二個請求資訊後,為了處理該請求,服務端會查詢資料庫
中已經儲存的資料資訊並處理,從而導致黑客在第一次請求中構造的 SQL 語句或者命令在服
務端環境中執行。 - 服務端返回執行的處理結果資料資訊,黑客可以通過返回的結果資料資訊判斷二次注
入漏洞利用是否成功。
該關卡為post型基於儲存的二次注入
登入頁面:
我們先使用賬戶密碼登入:
登入進來之後可以進行密碼更改:
此外,還有一個新使用者註冊頁面:
該關卡的思路是,首先知道一個正常使用者的username,然後註冊一個新使用者,新使用者的username與正常使用者一致,只是在後面加上注入語句,這樣在新使用者更改密碼時,讓系統誤以為是正常使用者更改密碼,從而獲得正常使用者的賬號。
操作流程,假設我們知道有一個使用者的username為Dumb,現在我們註冊一個新username為Dumb’#,密碼為123456
註冊成功,並且可以成功登入。
下面,將Dumb’#的密碼修改為Dumb
修改成功後,我們使用password為Dumb可以登入進Dumb的賬號
這就是該關卡的操作,在僅僅知道一個賬戶的username情況下,可以將這個賬戶黑掉。
簡單從程式碼分析:
登入頁面Login.php:
可以看到在 u s e r n a m e 和 username和 username和password中都使用mysql_real_escape_string()函式對字串中的常見特殊符號進行了轉義,說明登入頁面無法進行注入。
登入頁面無法注入,我們看一下注冊操作login _create.php:
這裡也進行了資料過濾,因此無法注入。
更改密碼操作pass_change.php:
這裡可以看到username並沒有進行轉義,因此沒有對資料進行過濾,所以我們更改Dumb’#的password時,實際上是更是了Dumb的password
相關文章
- 基於SOA 的儲存管理
- kunbernetes-基於NFS的儲存NFS
- 基於 XML Schema 的資料儲存方案XML
- 基於ROWCOUNT的分頁儲存過程儲存過程
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- 關於MYSQL中FLOAT和DOUBLE型別的儲存MySql型別
- 字元型別的字元儲存與位元組儲存字元型別
- 981-基於時間的鍵值儲存
- 基於LSM樹的儲存機制簡述
- 981. 基於時間的鍵值儲存
- 爬蟲資料儲存--基於MonogoDB爬蟲MonoGo
- 檢視AIX基於HBA的儲存的WWN號AI
- NOSQL儲存的基於事件的事務實現SQL事件
- 建立NFS型別的儲存NFS型別
- 基於autofac的屬性注入
- 基於報錯的注入模式模式
- 基於MFS高可用的分散式儲存架構分散式架構
- 基於TRIZ理論的筷子儲存盒設計
- js基於Cookie的儲存類例項程式碼JSCookie
- 基於EF Core儲存的國際化服務
- Oracle 儲存型別Oracle型別
- 基於Ceph物件儲存構建實踐物件
- 基於滴滴雲搭 SeaweedFS 儲存系統
- 基於catalog 建立RMAN儲存指令碼指令碼
- 二次注入(SQL)SQL
- 前端基於瀏覽器儲存的AJAX效能優化前端瀏覽器優化
- 基於Hibernate的圖片資料庫儲存(mysql)資料庫MySql
- Android,java,xml,xml讀取與儲存,基於AndroidXML解析與儲存的實現AndroidJavaXML
- 基於聯合查詢的注入
- 基於ecshop的二次開發
- 【資料庫】資料庫儲存元素型別基礎資料庫型別
- 儲存基礎(一)
- 儲存基礎(二)
- 儲存基礎(三)
- 儲存基礎(四)
- 200 行程式碼實現基於 Paxos 的 KV 儲存行程
- 實現基於zoom平臺上的oss額外儲存OOM
- 基於Google雲端儲存的開放Maven映象中央倉庫GoMaven