第一题 刚打开的页面 看源码,发现source.php 访问source.php 我们要用file参数带出flag,但是有白名单限制。第一个和第二个判断是对file本身的值进行判断,第三个和第四个是对?前面的file值进行判断,所以我们可以从第二个和第三个入手。 构造file值为source.php?../…/…/…/…/…/…/…/…/…/…/flag(要进行URL编码) 额,啥都没有,换成etc/passwd试试 没有flag。然后发现代码白名单有个hint.php,访问一下看看 好吧,找到flag文件名,构造file=source.php%3f…%2f…%2f…%2f…%2f…%2f…%2f…%2f…%2f…%2f…%2f…%2fffffllllaaaagggg,获取flag 第二题 万能密码试一下 还真是easy sql
第三题 看源码发现 构造参数cat=dog 第四题 过滤了这些字段 尝试一些堆叠注入 输入 1’; show databases# 看一下当前数据库的表 看下两个表的列名 第二个表因为是数字,所以查的时候加上反引号 发现第二个表就是我们的目标表了。 查看当前表的全部数据 可以推测当前表是words表,并且根据id字段来查询。 我们可以把words表改成别的名字,第二个表的名字改成words,因为第二个表没有id字段,所以添加一个id字段。 语句为 1’;rename table words to word123;rename table `1919810931114514` to words;alter table words add(id int(10))# 然后爆出全部数据 获得flag
第五题 堆叠注入 貌似当前数据库只有Flag表 源码的SQL语句是这样的 select $_GET[‘query’] || flag from flag 然后输入 *,1 获取flag 或者输入 2;set sql_mode=PIPES_AS_CONCAT;select 2
先记录到这,剩下有空在写