SQL注入
基于web程序中将用户输入数据未经过滤直接带入数据库中查询,导致可以拼接执行构造的SQL语句。
在以sqlilabs靶场的第一关为例
需要了解的:在url中?通常表示传递参数
进去之后是这个样子
按照要求输入id
http://127.0.0.1/sqlilabs/Less-1/?id=1
输入之后访问得到一个用户名和密码
这里可以把1改为2看看发生了什么
很明显的,用户名和密码都变了,因此实际上前端是把输入的指令带入到后端的sql库里面进行了查询的。
本来有一串源代码改了之后可以做到实时看输入的sql语句的
echo '执行的sql语句为:'.$sql; echo '<br/>'; echo '<br/>';
这里不知道为什么没搞出来
但是没有很大的影响
我们在后面再输入一个单引号‘
界面报错
这个%27我当时实际上时输入的单引号
那么看源代码
我们输入的单引号实际上是与源代码中的id前面的单引号配合了,所以导致原有的单引号失去作用,这就是sql注入。
利用这个特性,我们可以做到注释后面的内容之后自由查询数据。
漏洞危害
SQL注入漏洞对于数据安全的影响:
数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。
网页篡改:通过操作数据库对特定网页进行篡改。
网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。
服务器被远程控制,被安装后门:经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
破坏硬盘数据,瘫痪全系统。
如何挖掘:
可以像上面的一样,我们先尝试输入数据进行交互,如何观察是否具有sql注入特点。
这篇文章主要是进行一个sql初步了解,同时是为了配合xray与burp进行漏洞自动化挖掘,或者是进行web渗透,总之没啥好讲的,本文主要是参考csdn上一篇大佬的文章
笔记就酱
标签:数据库,SQL,sql,源代码,单引号,输入,注入 From: https://www.cnblogs.com/w0e6x-hiahiahia-go/p/18639420