Password checker: 代码执行
Little Doggy Tables: SQL注入
Password checker 50
Task
|
|
Solution
查看源代码,发现有如下js:
访问:
得到密码:password123 ,输进去后只是弹出一个提示框。
考虑命令执行,尝试查找flag:
|
|
得到flag:
另外读到run.php的源码:
Little Doggy Tables 100
Task
|
|
Solution
源码如下:
从题目的一大段描述,以及给出的源码来看应该是考察SQLite3注入。
关键在于下面这两句代码:
会将单引号'
通过正则替换成\'
进行转义,来阻止我们闭合。但如果我们传入\'
,则在通过正则替换后会变成\\'
,其中第二个’\’是正则添加的,配合我们传入的\
,会被转义,从而使我们的单引号逃逸。
在sqlite中,注释符为--
,尝试访问:
则服务器端执行的数据库查询语句如下,注意\\
:
单引号逃逸成功。
接下去考虑如何注出数据。
说明operatives表里有三个字段:codename,species,secret 。
|
|
直接提交不对。。。后面发现应该要改变limit。最后payload:
flag: