[HNCTF 2022 WEEK2]easy_include(Nginx日志)
经过这几天的做题,开始习惯查看网页请求头了,这题又接触了一个陌生的东西,Nginx日志;
通过访问日志可以得到一些信息,比如ip地址,请求处理时间的信息,错误信息等,在我查了一些资料后发现,Nginx日志有两种,一种是access.log,一种是error.log
两种日志中的信息不同,access.log中的信息是一些ip地址,浏览器的信息,称作访问日志;
error.log称为错误日志,也就是说里面是一些错误访问的信息,可以帮助修改错误
那么怎么访问这两种日志,一般都是存在于/var/log/nginx的目录下,比如访问目录就是/var/log/nginx/
access.log
看看这题吧,禁用了php和一些符号,就不知道该怎么入手了
(这种时候可以抓包看看请求头之类的有什么不同的)这题在响应头里面出现了nginx
搜索了发现了有日志这个东西,那么接下来就访问看看,注入一句话木马来查看
正常的再cat就行
[GXYCTF2019]BabySQli
这题比较有意思,也是第一次听说这种方法,所有记录一下,这题主要让我学到两个东西,一个是模糊测试(fuzz)一个就是,在本次联合注入中,当联合查询的数据不存在时,会自动生成一个虚拟数据,并且只用于本次查询举例:
这是查询前的表.
接着我们尝试查询一个不存在的数据.
可能这样还不够直观,通过联合查询将直观性体现出来.(联合查询时注意列数)
取自[GXYCTF2019]BabySQli(联合注入添加临时虚拟用户)
看到本题,在用户输入1',有报错,说明在这里存在SQL注入
用万能密码登录看看,得到一串码
用base32,和base64分别解码
这个语句说明在判断用户时,先判断用户名,按照经验,用户名一般先用admin试一下,发现用admin时,回显为密码错误,那么接下来就该到注入题的一般步骤了。对字段数进行查询,并且需要判断admin在那个字段
通过模糊测试,发现order by,被过滤了,那么就要用联合注入来查询了,根据回显判断有3个字段
判断admin在那个字段
回显密码错误,说明admin在第二字段,但是要登录就需要密码,就用到前面提到的生成一个虚拟数据,这里账号知道,需要生成一个虚拟密码,前面提到是先判断用户名,所以密码应该在后一个字段,把密码进行md5加密,密码就为md5原值
1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#