基于ctfhub基础的我都看得懂的sql整数型和字符型注入(自用)

先上结果,字符型和整数型解题思路,步骤,甚至存放的数据库都一样,挺离谱的

 

 因为本人自学,而且目前只学了这么点,但是完成这道题还是够用的。所以先得要了解完成这道题需要的前提知识储备。大致如下:

01.注入攻击原理 

大致利用sql语句的漏洞提交自己想要的代码,进行查询或者执行木马代码

**程序命令当作用户输入的数据提交给 Web 程序(注:注入最终是数据库,与脚本、平台无关)。
**总之一句话:注入产生的原因是接受相关参数未经处理直接带入数据库查询操作

02.注入前基本三个准备

**确定 Web 应用程序所使用的技术

/*
注射式攻击对程序设计语言或者硬件关系密切,但是这些可以通过适当的踩点或者索性

将所有常见的注射式攻击都搬出来逐个试一下就知道了。为了确定所采用的技术,攻击者可

以考察 Web 页面的页脚,查看错误页面,检查页面源代码,或者使用诸如 Nessus、AWVS、

APPSCAN 等工具来进行刺探。
*/

*确定所有可能的输入方式
/

Web 应用的用户输入方式比较多,其中一些用户输入方式是很明显的,如 HTML 表单;

另外,攻击者可以通过隐藏的 HTML 表单输入、HTTP 头部、cookies、甚至对用户不可见的

后端 AJAX 请求来跟 Web 应用进行交互。一般来说,所有 HTTP 的 GET 和 POST 都应当作用户

输入。为了找出一个 Web 应用所有可能的用户输入,我们可以求助于 Web 代理,如 Burp 等。
*/

**查找可以用于注射的用户输入
/*
在找出所有用户输入方式后,就要对这些输入方式进行筛选,找出其中可以注入命令的

那些输入方式。这个任务好像有点难,但是这里有一个小窍门,那就是多多留意 Web 应用的

错误页面,很多时候您能从这里得到意想不到的收获。
*/

03判断是否存在注入点

 利用

  • 加上单引号'
  • and 1=2 1=1

 04.sql数字型注入(不需要闭合)

最简单?的注入方式,因为不需要闭合分号,数字型只需要满足这个数字之后就自己编写sql语句了(大概)
数字型注入一般是post方式传递的(才够)

id=1 or 1=1

05sql字符型注入('闭合)

请求方式一般为get
用'闭合
用'闭合然后查询在注释

06搜索型注入(%...%')

满足这一类like ‘%(对应值)%’
用%%搜索包含%中间的内容

'%中间%'符合中间字符的任何数据

 07XX型注入(特殊')闭合)

mysql> select * from member where username=('xx') or 1=1;

用 ')闭合

直接查的时候不需要闭合,

08 union注入方式(常用)

特点


1两个语句独立查询 前一条语句就算是错的,后一条语句照样能出结果
2union查询的字段数要和主查询的字段一样所以union使用前需要用order by 查看能查询的最多字段。
可以在自己不需要显示的字段查询的时候用1来表示


查询样例

%v%' union select database(),1,1#
可以用错误的判断使前面查询的不显示出来,只显示union后面自己需要的部分
%v%' and 1=2 union select database(),1,1#

09information_schema(信息框架)数据库注入(贼牛逼的数据库)

information_schema数据库


这玩意是mysql自带的系统数据库里面存放着其他数据库的信息,利用价高。
配合union查询,可以查询出来其中包含的其他数据库内容信息

sql注入常用数据库表名(目前之接触了这些)

select database(),user(),version() 查询当前使用的数据库名,使用者,数据库版本


大的数据库存放表,表里面有字段,字段下面存放信息


information_schema数据库
这玩意是mysql自带的系统数据库里面存放着其他数据库的信息,利用价高。
该数据库里面常用表名


一.information_schema.tables 存放对应数据库的表单信息
1. table_schema 存放数据库名字
2. table_name 存放对应数据库里面保护的表单名字


二.information_shchema.columns 数据库的字段信息
1. column_name 表单对应里面的列名
2. tables_name 表单名字

分割线


本题解题,就用到了 union 和 information_schema这两个查询方法

大致步骤如下:

步骤:
!!!数据库——》表——》字段
1.先用order by 确定显示的字段数 发现是2

2.可以使用union进行搜索,且搜索的字段数 需要为2不然会报错,先搜集得到当前使用的数据库为sqli

 


3.目前先转目标为特殊数据库 information_schema寻找该数据库 sqli中特殊的表和字段(chuanxi)
4.tmd 搞了半天发现提前一步,已经知道了数据库名字,那么先从表开始啊(笨),搜索information_schema.tables



哦出现了flag(wc好神奇)
5.有了表单了,然后去问神奇的字段啊

6.最后一步了直接查询字段里面存的内容


发现题目已经解决了,然而做出这道题需要储备不少知识的,至少我这种程度完全不够,因为对比了一下网上大佬们的,发现自己不标准也少出现了一个表news,果然是自己问题还需要多学啊。目前储备的知识才够这种题啊,我真是菜...(前途一片黑暗)

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值