sql注入(学习笔记1)

sql注入原理
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询。

在于用户交互的过程中,用户的输入拼接到SQL语句中,执行与原定计划不同的行为,从而产生了sql注入漏洞。

造成sql注入的核心就是:把用户输入的数据当做代码执行了。

比如一个登陆框的sql语句为:
select * from admin where username=‘用户输入的用户名’ and password=‘用户名的密码’

用户输入的内容可由用户自行控制,列如可以输入’ or 1=1 --空格
SQL语句:select *from admin where username =’ ’ or 1=1 – ’ and password =‘用户输入的密码’
其中or 1=1 永远为真 ,–注释后面的内容就不会在执行,因此会返回admin表中的所有内容

post注入万能密码靶场
第一题
随便输入登录密码错误
在这里插入图片描述使用万能密码’ or 1=1 #
在这里插入图片描述成功登录
在这里插入图片描述第二题
这里使用的是("")闭合,那么就可使用 “)将前面闭合,最后语句会变为(”")") or 1=1 # 这样就把前面闭合了,然后就会执行sql语句
在这里插入图片描述输入万能密码 ") or 1=1 #
在这里插入图片描述成功登录
在这里插入图片描述使用burp爆破的方法:
首先网上查找万能密码把万能密码复制到txt文件中
在这里插入图片描述抓取登录的数据包
在这里插入图片描述放到爆破模块中,把输入的账号选中
在这里插入图片描述
放入保存好的字典
在这里插入图片描述开始爆破
就可以看到使用各个万能密码返回的状态
在这里插入图片描述
git传参sql注入
url栏中带有?号的就是Git传参

这是一个带有Git传参的新闻页面
在这里插入图片描述怎么知道存在sql注入呢?
使用

and 1=1
and 1=2
and -1=-1
and -1=-2
and sleep(5)
等等,有很多种方法

这里
使用and 1=1 and 1=2 测试
and 1=1 页面正常
在这里插入图片描述and 1=2
页面不正常没有回显,可以看到输入的数据跟数据库进行了交互,然后数据库没有查到,返回的页面就会异常,证明存在sql注入
在这里插入图片描述
使用sqlmap寻找sql注入
sqlmap是检测和利用SQL注入漏洞的一款强大工具

登录注入演示

首先抓取一个登录的数据包,把里面的内容保存到txt文件中,放到sqlmap目录下
在这里插入图片描述打开sqlmap
输入命令sqlmap.py -r 1.txt -p username --dbs,就会开始查找是否有注入

在这里插入图片描述演示git传参注入
先复制url栏里的地址
使用命令sqlmap.py -u “要查找注入的url地址” --dbs
就可以查找到是否存在注入
在这里插入图片描述

发布了14 篇原创文章 · 获赞 0 · 访问量 133

猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/104887261