您的位置:首页 > 游戏 > 游戏 > 重庆做网站怎么做_遵义公共资源交易中心_查关键词排名网_seo排名赚app是真的吗

重庆做网站怎么做_遵义公共资源交易中心_查关键词排名网_seo排名赚app是真的吗

2024/12/22 17:33:50 来源:https://blog.csdn.net/Sun_12_2/article/details/139004100  浏览:    关键词:重庆做网站怎么做_遵义公共资源交易中心_查关键词排名网_seo排名赚app是真的吗
重庆做网站怎么做_遵义公共资源交易中心_查关键词排名网_seo排名赚app是真的吗

SQL注入(SQL lnjection Base)

sql-labs靶场的搭建

GitHub - Audi-1/sqli-labs: SQLI labs to test error based, Blind boolean based, Time based.SQLI labs to test error based, Blind boolean based, Time based. - Audi-1/sqli-labsicon-default.png?t=O83Ahttps://github.com/Audi-1/sqli-labs.git

下载sql-labs的压缩包

打开小皮打开localhost的根目录

解压缩后将名字改为sqli方便一点

查询本地ip,打开小皮里面的apche和mysql

创建站点成功

 再打开自己的本地ip后面跟后缀/sqli就可以进入页面

点击setup对数据库的连接

打开sqli里面的connection文件更改里面账号以及密码,改为自己当前数据库的账号密码

打开页面就可以显示以下内容

这里我们要选择php为5的版本才能打开

insert into USER
    (
    id,name,sex,birthday,job)
    VALUES
    (
    1,'ss','male','2004','students')
    ;

insert into USER
    (
    id,name,sex,birthday,job)
    VALUES
    (
    1,'ss','male','2004-12-02','students')
    ;

判断这是字符型,将id=1 and 1=2 判断为一整个整体

如果是数字型,这里我们输出id=2-1显示的结果应该是id=1的结果

这里是level2,我们先判断id=1的时候输出的name和password

这里是我们输出level2输出的数值

我们发现当输出id=2-1的时候输出的是id=1的值,所以我们判断这是数字型注入

数字型不需要闭合符号闭合,字符型需要闭合符号闭合

判断闭合符号

right syntax to use near ''2'' LIMIT 0,1' at line 1

其中我们分析有五个单引号,单引号的分布应该是' '2' ' LMIT 0.1'

也就是第一个和最后一个对应,2里面多了一个单引号

这里是我们输入1'后报错的内容

他是数字型函数所以没有闭合符号

改到less8来输入内容查看闭合信息

在后面加一个'号,发现没有值输出,说明出现错误,我们通过注释符号可以将其注释

注释符号分别有--+,#或%23

union联合注入

http://localhost/sqli/Less-1/?id=1' union select database()--+

联合注入需要查询前面的列是多少列

group by 二分法判断默认页面数据列数量

/?id=1' union select 1,2,3--+

这里的123只是为了保证数列等于三

查询回显位

http://192.168.153.1/sqli/Less-1/index.php?id=-1' union select 1,2,3--+

2号位和3号位可以回显

http://192.168.153.1/sqli/Less-1/index.php?id=-1' union select 1,2,database()--+

① version() – 数据库版本
② user() – 数据库用户
③ database() – 当前所在数据库
④ current_user() – 当前用户名
⑤ system_user() – 系统用户名
⑥ session_user() – 连接到数据库的用户名
⑦ @@basedir – 数据库的安装目录
⑧ @@datadir – 数据库文件存放目录

SQL注入是一种常见的Web应用程序漏洞,攻击者利用该漏洞向应用程序的数据库发送恶意的SQL查询,以获取敏感信息、修改数据或执行其他恶意操作。下面是关于SQL注入的说明以及如何进行和防范:

数据库:一个存放数据的库;分 为关系型数据库和非关系型数据库

通过命令docker pull mysql:5.7下载好数据库

docker run --name sqlinjectmysql -d -p 4001:3306 -e MYSQL_ROOT_PASSWORD=123 5107333e08a8  #Mysql image id
 

运行进入数据库

1.SQL注入的原理:


2.SQL注入利用应用程序对用户输入数据的不正确处理,将恶意的SQL代码注入到应用程序的数据库查询中。
3.攻击者通过在输入字段中插入恶意代码,改变SQL查询的逻辑,从而绕过身份验证、获取敏感数据或执行未经授权的数据库操作。


4.SQL注入攻击的实施:


5.Union注入:常用于获取额外的数据库信息,攻击者可以在查询中添加UNION语句,将两个表的数据合并输出。
6.Boolean-based注入:利用逻辑判断条件,通过观察页面的返回结果来判断数据库中的信息。
7.Error-based注入:利用数据库错误信息暴露数据库结构和数据信息。
8.Blind注入:攻击者无法直接获取数据返回结果,但可以通过不同的条件检测来推断数据。


9.判断SQL语句闭合符:


10.在进行SQL注入时,攻击者通常需要找到SQL语句中可以插入恶意代码的位置。判断SQL语句闭合符(通常是单引号')是一种重要的技术。
11.通过在输入字段中插入专门设计的字符(如单引号),观察应用程序的响应是否异常,可以帮助判断SQL语句中是否存在闭合符号。如果应用程序报错,可能表示注入点存在。

在防范SQL注入方面,有一些常用的做法:

12.使用参数化查询(Prepared Statements)来过滤用户输入,避免直接拼接SQL查询。
13.对用户输入进行输入验证和过滤,确保只接受预期的数据。
14.最小化应用程序的特权级别,限制应用程序对数据库的访问权限。
15.定期更新应用程序和数据库管理系统,确保应用程序所用的软件版本已修复已知的SQL注入漏洞。

在编写和设计Web应用程序时,应该时刻警惕SQL注入等漏洞的存在,采取有效的措施来防范和减少安全风险。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com