【网络安全渗透测试零基础入门必知必会】之SQL手工注入基础语法&工具介绍(2)

一、SQL注入必备基础知识


初学SQL注入的小白,整理一下必备的一些基础知识,如有不如或者错误请指出。

注释符

  • 单行注释:- -

  • 多行注释:/* … */
    在sql-labs中,经常使用- - +放在最后注释多余部分


WHERE 子句

如果只希望选取居住在西安中的人,我们需要向select语句添加where子句:

select * from persons where city=‘xi’an’


SELECT查询

  • select 列名 from 表名

  • select * from 表名

如果把一个学校比作数据库,那么年级就是表名,班级就是列名,意思就是从某年级查看一下某班级。

例如:
select column_name from table_name


查字段数(ORDER BY)

order by 语句用于根据指定的列对结果集进行排序,order by语句默认按照升序对记录进行排序,如果您希望按照降序对记录进行排序。
在sql-labs中,因为union前面列数必须一致,我们必须找出实际列数。这里我们使用了order by,因为order by 排序列数多于实际列数会报错。

假设这里有一个包含SQL注入漏洞的URL,它会将HTTP GET方法中名为“order”的参数的值(该值由用户指定)传递给SQL查询。该URL如下所示:

http://xxx/.asp?data=yes&order=column_name

然后,应用程序会从HTTP GET方法的参数“order”中接收用户提供的数据,并生成如下所示的SQL查询:

Select table_name,column_name from information_schema.columns order by column_name


分组(GREAT BY)

great by :great表示分组,by后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,great by比较类似Excel里面的透视表。
great by必须得配合聚合函数来用,分组之后你可以计数(count),求和(sum),求平均数(avg)等。

例如:
select column_name, aggregate_function(column_name) from table_name where column_name operator value order by column_name


合并语句(UNION)

union用于合并两个或多个select语句,而且union内部的select必须有相同数量的列,列有相似的数据类型,简单的说就是它内部列的属性相同,要么都是数字型,要么都是字符型。

例如:
select column_name from table_name1
union
select column_name from table_name2


连接字符(CONCAT)

concat用于将两个字符连为一个字符串,返回结果为连接产生的字符串,如有任何一个参数为NULL(空),则返回值为NULL(空)。

例如:
select concat (admin,passward) from … where …


延时函数(SLEEP)

select sleep (N) 可以让语句运行N秒钟
sleep可以强制产生一个固定的延迟

例如:
id=1 and sleep(5) //判断下是否存在延时注入,若5秒钟页面返回则存在。


COUNT函数

COUNT() 函数返回匹配指定条件的行数。

例如:

select count (column_name)from table_name //返回指定列的值的数目
select count (*)from table_name //返回表中的值的数目

二、SQL注入常用工具

BSQL Hacker

SQL Hacker是由Portcullis实验室开发的,BSQL Hacker 是一个SQL自动注入工具(支持SQL盲注),其设计的目的是希望能对任何的数据库进行SQL溢出注入。BSQL Hacker的适用群体是那些对注入有经验的使用者和那些想进行自动SQL注入的人群。BSQL Hacker可自动对Oracle和MySQL数据库进行攻击,并自动提取数据库的数据和架构。

The Mole

The Mole是一款开源的自动化SQL注入工具,其可绕过IPS/IDS(入侵防御系统/入侵检测系统)。只需提供一个URL和一个可用的关键字,它就能够检测注入点并利用。The Mole可以使用union注入技术和基于逻辑查询的注入技术。The Mole攻击范围包括SQL Server、MySQL、Postgres和Oracle数据库。

Pangolin

Pangolin是一款帮助渗透测试人员进行SQL注入(SQL Injeciton)测试的安全工具。Pangolin与JSky(Web应用安全漏洞扫描器、Web应用安全评估工具)都是NOSEC公司的产品。Pangolin具备友好的图形界面以及支持测试几乎所有数据库(Access、MSSql、MySql、Oracle、Informix、DB2、Sybase、PostgreSQL、Sqlite)。Pangolin能够通过一系列非常简单的操作,达到最大化的攻击测试效果。它从检测注入开始到最后控制目标系统都给出了测试步骤。Pangolin是目前国内使用率最高的SQL注入测试的安全软件。

Sqlmap

Sqlmap是一个自动SQL 注入工具。其可胜任执行一个广泛的数据库管理系统后端指纹,

检索DBMS数据库、usernames、表格、列、并列举整个DBMS信息。Sqlmap提供转储数据库表以及MySQL、PostgreSQL、SQL Server服务器下载或上传任何文件并执行任意代码的能力。

Havij

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值