Apache-ssrf

SSRF即为服务端请求伪造,是一种由攻击者构造形成由服务器端发起请求的一个漏洞。一般情况下,SSRF 攻击的目标是从外网无法访问的内部系统,本题的目标也是访问服务器的内网,以此可以拿到flag,分析如图

漏洞形成的原因大多是因为服务端提供了(客户端)从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制

个人理解:客户端->服务端->内网服务器(本地web应用等等)

摘自官方的wp

image.png

摘自ctf-wiki

image.png

建议是——尽快将自己的apache服务器更新到最新的版本,以及配合一些其他的安全措施(类似于防火墙之类的)

一本单词书(反序列化)

==是一种弱类型比较,只要两个变量的value值相等(可利用php处理字符的特性)即可

===即为强类型比较,必须要保证两边的变量的value数据类型都相等才会返回true,否则为false

本题使用了弱类型比较,所以使用“adm1n”"1080+"等类似的操作都可以绕过登录

建议使用强类型比较,以防止此类绕过现象发生

其实我一开始的处理方法是只看了decode的unserialize(没弄套娃)将一个‘|’置于已经序列化的对象的开头,触发了魔术方法,得到了flaghhh

关于序列化和反序列化可以参考一下这位师傅的博客:https://pankas.top/2022/03/01/php%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E7%AE%80%E5%8D%95%E6%80%BB%E7%BB%93/

摘自该师傅的博客

image.png

Pokemon(sql注入)

SQL 是用于访问和处理数据库的标准的计算机语言

Sql注入的实质:通过制造不寻常的语句,破坏原有的sql语句结构执行攻击者想要执行的命令,之后该命令语句会被递交给后端的数据库服务器(mysql等等)从而造成情报或某些关键信息的泄露

摘自ctf-wiki

image.png

数字型注入,相对于布尔盲注和时间盲注算是比较简单的类型(这让我想起了pokemon v2以及几天前的虎符sql简直就是地狱体验,之后还得去复现一下)

布尔盲注:当sql注入的回显值并不是具体的某个变量,而是类似于报错(false)或是不报错(true)的情况时可以考虑这一点

时间盲注:在某些sql注入的情况中,注入是否成功页面都没有明显的变化,可以使用时间盲注来判断(sleep(xxx))注入点是否存在

关于sql注入的一些字段补充说明:

  • Table_schema:数据表所属的数据库名
  • Table_name:当前数据表的名字
  • Information_schema.tables: 存储了数据表的元数据信息,可以和group_concat(table_name)搭配使用,以此获取当前数据库的所有表名。information_schema.columns同理
  • Group_concat(table_name): GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成。Group_concat(table_name)就是将每个表的名字以字符串的形式连接在一起
  • 例子:union select group_concat(table_name) from information_schema.tables where table_schema = ‘xxxx’

从数据库名为xxx中选出所有的表并将这所有表的名字以字符串的形式拼接在一起

Webpack-engine

关于sourcemap的一些知识点:摘自ek1ng师傅的wp

image.png

建议:在部署线上环境的时候删除sourcemap,防止源码泄露

这道题就是在开发者工具中就可以看到带有flag的源码文件了……

At0m的留言板

根据hint,正在对图片进行测试,说明需要使用<img>标签搭配Onerror(js基础不太好需要补一补)

即为xss攻击

摘自ctf-wiki

image.png

官方wp给的方法是这样的

image.png

总体思想:构造不存在的img src属性,触发onerror事件的函数

建议:过滤要非常非常的严格,要考虑诸多情况,如果可以的话,需要结合日志处理