sqlite常规注入(FlatScience) - 图1

进入题目一直点here啥都没有。

所以用御剑扫描出后台有个文件是robots.txt

打开后发现出现admin.php和login.php

尝试打开这两个网站

login.php

sqlite常规注入(FlatScience) - 图2

admin.php

sqlite常规注入(FlatScience) - 图3

这两个登录框差不多。看到登录框肯定想到的就是sql注入了。

所有先试一下admin.php的id:

sqlite常规注入(FlatScience) - 图4

没有任何的报错信息

试一下login.php的id

sqlite常规注入(FlatScience) - 图5

报错存在注入

admin’#

sqlite常规注入(FlatScience) - 图6

回显了这个信息。

我们用bp跑一下看看到底式过滤了什么么

sqlite常规注入(FlatScience) - 图7

只有’ 是有回显信息的

用admin’ or 1=1—试试

进去了。。又返回主界面

就奇怪 了

点开源码

sqlite常规注入(FlatScience) - 图8

那我们后面+?debug

sqlite常规注入(FlatScience) - 图9

sql查询可以轻松闭合,但是这里并没有要给flag的意思,bp抓包再对username进行注入,看响应头有没有给出信息:

这里需要细心一点就是数据库并不是SQL数据库

sqlite常规注入(FlatScience) - 图10

这个数据库没有见过啊。。。

构造usr=’ union select name,sql from sqlite_master—+&pw=

为什么要查询sql呢,这涉及到sqlite自带的结构表sqlite_master,sql是sqlite_master中的一个字段,注入时经常用到的,注入后响应头的set-cookie:

sqlite常规注入(FlatScience) - 图11

set-cookie也就是:

  1. CREATE TABLE Users(
  2. id int primary key,
  3. name varchar(255),
  4. password varchar(255),
  5. hint varchar(255)
  6. )

这就出现了表名和表中的字段了,仍然在usr处用limit进行移位并查询:

(也就是后面的 limit 0,1;limit 1,1;limit 2,1)

  1. usr=%27 UNION SELECT id, id from Users limit 0,1--+&pw=chybeta

sqlite常规注入(FlatScience) - 图12

  1. usr=%27 UNION SELECT id, name from Users limit 0,1--+&pw=chybeta

sqlite常规注入(FlatScience) - 图13

  1. usr=%27 UNION SELECT id, password from Users limit 0,1--+&pw=chybeta

sqlite常规注入(FlatScience) - 图14

  1. usr=%27 UNION SELECT id, hint from Users limit 0,1--+&pw=chybeta

sqlite常规注入(FlatScience) - 图15

得到的数据

sqlite常规注入(FlatScience) - 图16

发现能够解开 2,3 的 sha1,而 1 的 sha1 无法解开。表的信息都有了,flag 呢?

name=+my+fav+word+in+my+fav+paper%3F%21

我们根据这句话洞察到,最终你的密码还是不在我们的网站中,说我最喜欢的词(密码)在我最喜欢的文章中

好吧,还得找到作者最喜欢的文章,但是我们之前查到有密码,所以有可能这个就是作者最喜欢的文章的哈希值SQL基础知识积累:

UNION :合并两个或者两个以上的SQL语句(默认地,UNION 操作符选取不同的值)

UNION ALL:合并操作符相同的几个SQL语句

:url中#号是用来指导浏览器动作的(例如锚点),对服务器端完全无用。所以,HTTP请求中不包括#使用时#号改成url的编码%23就可以了

爬取站点中所有的pdf文件,总共30个,然后用脚本进行解析处理,并用sha1函数与加密的密码进行碰撞已找出正确的密码,拿大佬的脚本:

sqlite常规注入(FlatScience) - 图17

跑出admin的密码为:ThinJerboa

在admin.php界面用admin登录得到flag:

flag{Th3_Fl4t_Earth_Prof_i$_n0T_so_Smart_huh?}