Tsclient
flag1 fscan扫描出可利用的信息 使用MDUT进行连接 这里SeImpersonatePrivilege 身份验证后模拟客户端 已启用可以使用sweetpotato进行提权 尝试上线cs 上线成功,接着进行提权 然后我们看看flag 在哪里,这里找就有点麻烦了,我们可以将system上线 在MDUT执行命令 1shell C:\Users\Public\SweetPotato.exe -a C:\Users\Public\artifact_x64.exe 上线成功 得到flag 1flag{4f89fd8a-ce68-4d65-821a-778b52fe742c} flag2让我们注重用户会话 查看在线用户 1shell quser || qwinst 可以使用cs注入进程上线 点击注入,上线成功 查看共享资源 1shell net use 查看目录 给出账号密码,并且提示是映像劫持 1xiaorang.lab\Aldrich:Ald@rLMWuy7Z!# 使用fscan扫描,因为有乱码,然后输出到文...
红日靶场1
前言靶场来自无境,尽量写的详细一点 过程web渗透-sql日志首页使用tscan进行目录扫描访问phpMyAdmin后台,root/rootshow variables like '%general%'这里显示的日志的开关以及日志存放的位置我们要做的事将一句话代码写进shell.php中,将日志开关打开,然后改变日志存储的文件位置set global general_log = "on"set global general_log_file = "C:\\phpStudy\\WWW\\shell.php"然后使用蚁剑连接; web渗透-YXcms这个是在目录是在御剑里扫描出来的http://192.168.111.20/yxcms/index.php/尝试登录这里的模板文件是可以编辑的,我们写入一句话木马。继续扫描发现目标文件http://192.168.111.20/yxcms/protected/apps/default/view/default/info.php 后渗透前期准备接着我们上线msf生成木马ms...
java代码审计之sql注入
前言最近在疯狂打游戏哈,有点懈怠了,所以赶紧去来补一下java的代码审计,上一篇的xss是找了个视频,随便写了点,这个就认真一点,依旧找个博客跟着大佬学习。项目地址:JoyChou93/java-sec-code: Java web common vulnerabilities and security code which is base on springboot and spring security jdbc的拼接不当导致的sql注入在jdbc中存在两个sql语句来执行sql,一个是Statement,另一个是PreparedStatement。那么他们的写法分别是 Statement1234Connection con = DriverManager.getConnection(url, user, password);Statement statement = con.createStatement();String sql = "select * from users where username = '" + usernam...
java代码审计之xss
前言虽然不是很多但是也要记录一下,好久没发过博客了,简单水一下 XSS漏洞原理三个关键:参数必须传递到后端、参数必须不可控、参数必须被浏览器解析。恶意攻击者往web页面插入恶意Script代码,当用户浏览该页之时,嵌入web页面中的script代码会被执行,从而达到攻击的效果。 XSS漏洞的审计方法关注用户可控终端(用户的输入),传入后端的参数且返回给浏览器被解析。 使用Servlet技术:request.getParameter("name") 使用Struts2框架:(1)通过Action类绑定参数或model获取前端的参数123456789<form action="login.action" method="post"> 账号:<input type="text" name="name"> 密码:<input type="password" name="password">...
java内存马_8
前言上次讲到了使用反序列化注入的一种回显方法-ThreadLocal回显,这次我们来学习一下另一种-全局Response回显。 全局Response分析之前在学习servlet内存马的时候,我们对请求的获取分析是从Http11Processor开始的,这次我们起一个简单的服务回看整个调用栈,找到Http11Processor这个类,我们会看到出现了request和response,我们可以看到这两个属性是来自它的父类AbstractProcessor那我们要想怎么获取到AbstractProcessor这个类,回看调用栈可以看到AbstractProcessor这个类是继承于AbstractProcessorLight,而AbstractProcessorLight又出在了调用栈中,但是调用栈是没有AbstractProcessor这个类的引用的,我们只能使用Http11Processor来获取request和response。所以问题还是抛给到了对Http11Processor的获取。这就来到了ConnectionHandler这里就注册了Http11Processor这个类,...
java内存马_7
前言也算是和利用有关 之前分析的几个内存马,jsp类型的是可以通过文件上传来注入利用的,但是如果直接注入,那么就得用到反序列化,那么我们就要考虑回显问题了(jsp是内置了request和response的),今天要学习两个方法来解决这个问题 使用ThreadLocal Response 回显,原理是从ApplicationFilterChain类中获取到response对象。当然如果漏洞是在ApplicationFilterChain之前的话,这个方法就不能使用了。 通过全局Response回显,寻找tomcat在处理servlet、filter之前有没有存储Response变量。 TreadLocal Response回显什么是TreadLocalTreadLocal就是线程安全,它是怎么做到安全的呢?举个例子:如果现在不安全的情况下,比如有很多人同时向服务器去请求不同数量的同一个东西,那么第一个人如果要10个,其他人也都会得到10个(因为是并发),拿不到预期想要的东西。如果要解决这种问题就可以使用TreadLocal,创建一个独立的变量域,这样就不会出现线程间的变量覆盖这...
CORS漏洞
前言最近了解到了CORS漏洞,赶紧来学一下。 CORS概念同源策略在讲CORS之前,要先知道同源策略这个机制,这个机制是浏览器的安全核心,它规定,如果两个页面的协议、端口和域名不完全相同,那么它们就是不同源的。浏览器会限制不同源的文档或脚本相互读取数据(例如,防止站点 A 的脚本读取站点 B 的 Cookie 或页面内容)。 CORS而在实际的web开发中,经常需要跨域请求数据,例如:前端在www.a.com,api接口在api.b.com这样前端去向api进行一个请求,就是跨域的请求。CORS就是用来打破同源策略的,它通过在服务端的 HTTP 响应头中添加特定的字段,告诉浏览器:“我允许这个外域的页面来读取我的数据”。 CORS漏洞CORS 漏洞并不是 CORS 机制本身的设计缺陷,而是服务端开发人员在配置 CORS 策略时出现了错误,导致权限放得过宽。当服务端没有严格校验请求的来源(Origin),并且允许跨域携带凭证(如 Cookie)时,攻击者就可以通过构造恶意网页,欺骗受害者访问,从而在受害者不知情的情况下,以受害者的身份向存在漏洞的网站发起请求并窃取敏感数据。 漏洞的...
java内存马_6
前言Valve内存马是和filter,listener,sevlet内存马是不同的,后三者的内存马是放在web的请求中的,而Valve的内存马是放在Pipeline的流程中的。 什么是Valve因为前面可能只是提了一下valve,比如StandardEngineValve,并没有具体的介绍,所以这里具体介绍一下:Tomcat 的容器结构是层级制的(Engine -> Host -> Context -> Wrapper)。每个容器都有一个 Pipeline(管道),而管道中可以挂载多个 Valve(阀门)。例子:当一个请求通过容器时,它会像流水一样流经管道中的每一个阀门。每个阀门负责完成特定的任务,然后将请求传递给下一个阀门,直到最后由 BasicValve(基础阀门)将请求交给子容器或业务逻辑。简单来说,Valve 是 Tomcat 管道(Pipeline) 机制中的一个组件,用于在请求到达最终的 Servlet 之前,对请求进行拦截、处理或过滤。大家可以看这张图辅助理解:其实Valve是和filter很类似的,我们也可以通过特定的方法将我们创造的valve放...
java内存马_5
前言前面已经讲了三大件的其中两个:filter和listener,接下来也就是今天的内容servlet类型的内存马. Servlet创建这个创建就不想之前讲的这么详细了(三种创建方法),我们单拿一个方法解释一下,我也凑凑字数.一个小demo(之前写过的): 1234567891011121314151617181920212223242526272829303132333435363738import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; @WebServlet(urlPatterns = "/demo1") //第一种方法实现Servlet接口 public class Servletdemo1 implements Servlet { //初始化,当Servlet第一次被创建的时候执行这个方法,这个方法在整个生命周期中只执行一次。 @Override public ...
java内存马_4
前言新年快乐捏,也是想起来继续学习了。今天来聊聊listener型的内存马。先回忆一下listener都会干些什么? Listener(观察者)Java Web 开发中的监听器(Listener)就是 Application、Session 和 Request 三大对象创建、销毁或者往其中添加、修改、删除属性时自动执行代码的功能组件。这里介绍七个个listener, ServletContextListener:用于监听 ServletContext 对象的创建和销毁事件,可以在 ServletContext 对象初始化时执行一些初始化代码,也可以在 ServletContext 对象销毁时执行一些清理代码。 ServletContextAttributeListener:用于监听 ServletContext 对象中属性的添加、删除和替换事件,可以在属性添加时执行一些逻辑处理,比如更新配置信息等;在属性删除时执行一些清理操作,比如释放资源等。 HttpSessionListener:用于监听 HttpSession 对象的创建和销毁事件,可以在 HttpSession 对象初...
