网络安全学习笔记之SQL注入

学习内容来自哔哩哔哩的up主——网络安全就业推荐

一、判断是否有sql注入

输入'        "        \        #        --等符号出现使web页面出现报错,就可以判断是否存在sql漏洞

因为这个网站最理想的情况应该是“无论我输入的内容是什么,他都能当作正常数据进行处理,而正常处理的情况下web页面是不应该报错的,那报错的原因就可能是输入的某些符号被当作代码的一部分执行了,所以出现报错的这个的这个位置是可能存在sql注入漏洞的”,可以认为“报错=有漏洞”

盲注时由于没有回显所以我们要仔细观察响应的数据包又没有与正常相应的数据包相比出现异常的,有异常的就可能有sql漏洞

二、判断是数字型还是字符型

区别是是否需要闭合,字符型是需要闭合的,大多数情况下都是字符型

可以输入 ?id=1 and 1=2

如果是数字型的会出现正常页面,但是查不到,因为后面的1=2为假

如果是字符型的话会报错,因为字符型的SQL语句为select * from users where id='id=1 and 1=2'

或者select * from users where id="id=1 and 1=2"

也可以输入?id=1' and '1'='1

如果是数字型会报错,字符型能够正常查询

字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。

三、爆列数

用order by语句

order by a,a指的是第几列,如果出现报错这表示第a列不存在,

四、爆库名

联合查询union select 第1列,···,第x列,···,第i列。

根据之前爆出来的列数确定i的值,用database()换掉其中的第x列,查出数据库名

五、爆表名,字段名和数据

爆表名

1' and union select 1, group_concat(table_name) from information_schema.tables where table_schema = '数据库名' #

这里的 group_concat(table_name) 是让table_name在一行上显示

爆字段名

1'union select 1,group_concat(column_name) from information_schema.columns where table_name=’users’ #

爆数据

union select user,password from users

我总结的不是很好,dvwa注了半天也没弄好,看看其他人的吧

DVWA靶场之SQL注入通关详解-CSDN博客

DVWA—SQL Injection(SQL注入))_dvwa sql injection-CSDN博客

 个人感觉

sql注入可以从web页面直接注入(数据以get的方式上传),还可以用burpsuit等工具截取数据包,在数据包中的数据插入sql语句进行sql注入攻击,

要记住一些数据库自带的库名、表名、列名等信息,不然就不知道从哪select

一些相关的语句有

 其他

  SQL还有其他的方面,我这里由于学艺不精,只能算是初步的SQL注入,其他入盲注等请自己找资料吧,谢谢!

 网络安全的学习一定要配合网络安全法一起学习,以上内容乃作者的网络安全学习笔记,读者所为一切行为均与作者无关,忘牢记网络安全法。

中华人民共和国网络安全法_中央网络安全和信息化委员会办公室 (cac.gov.cn)

posted @ 2024-03-31 19:12  menkezhou  阅读(30)  评论(0)    收藏  举报  来源