0x00前言
sqli-labs 第一階段已經(jīng)ok了 然后這是第二階段的題目 發(fā)現(xiàn)明顯有些不一樣了? 這次是登錄框和注冊框 弄了會(huì)感覺有點(diǎn)懵逼所以干脆寫個(gè)博客記錄一下好了
0x01分析
首先我們可以發(fā)現(xiàn)這是一個(gè)登錄的窗口有著注冊和登錄還有忘記密碼 當(dāng)我們點(diǎn)擊忘記密碼的時(shí)候 會(huì)提示 如果我忘記了密碼那么就嘗試黑入? 在我簡單的測試了一下 發(fā)現(xiàn)好像都沒找到什么 所以沒辦法 來看一下源碼 由于有很多php 文件所以我們找出含有sql語句的幾個(gè)php文件 來從源碼分析一下
然后分別查看一下 這些文件 發(fā)現(xiàn)很多地方都使用了 mysql_real_escape_string 這個(gè)函數(shù) 在網(wǎng)上查了一些這些函數(shù)可以把 符號進(jìn)行轉(zhuǎn)移 簡單的來說這個(gè)函數(shù)可以防止sql注入
但是在這個(gè)文件中我們發(fā)現(xiàn) username那一行是存在注入的 所以 我們可以對username進(jìn)行利用看一下文件的名字 pass_change 所以這個(gè)攻擊應(yīng)該發(fā)生在修改密碼的頁面進(jìn)行的 所以我們可以注冊 admin'# 的賬號 然后觀察我們?nèi)绻粤?這個(gè)賬號源碼會(huì)發(fā)生什么
這里session就不過多介紹了 username是存儲(chǔ)在session里面的 所以這里面的usrename 從session里面取出來并沒有進(jìn)行過濾 所以這里也就存在了注入了? 反管我們的數(shù)據(jù)庫 我們之前通過 用戶名 admin'# 密碼1 注冊了一個(gè) 賬戶? 如下所示
現(xiàn)在我們的admin 密碼是123 看我們之后會(huì)變成怎么樣~~~
我們把密碼改成 123456 然后再看數(shù)據(jù)庫
發(fā)現(xiàn)我們admin 的密碼就變成了 123456 了? 這個(gè)是二次注入 我們以用戶名為 admin'# 賬號進(jìn)行登錄 在修改的時(shí)候 表面上是修改這個(gè) 賬號 但是由于有注入點(diǎn)所以實(shí)際上我們更改的是 admin的賬號 并且把a(bǔ)dmin的密碼改成我們想改成的密碼