SQL注入简单分享

2024-04-16 0 3,648

一、sql注入基础整理

1)SQL注入原理

SQL注入是把恶意的 SQL 查询或添加语句插入到web界面的输入参数中,后台对输入参数的不严格过滤导致数据库内容被修改或输出,它目前黑客对数据库进行攻击的最常用手段之一。

2)SQL注入的常见类型

1、注入点

有常见的sql注入的注入点,也就是说这些地方有可能会传入参数到后端,然后可能会有后端执行对数据库的操作引用我们输入的参数

a、COOKIE

这个注入我们在url上看不到注入点,所以一般这个先是对这个网页进行抓包,然后得到包后看到这个包中的cookie上由id=1之类的就可以猜测是cookie注入

b、GET

这个是在url上可以直接写的?id=(写在url上说明id这个在后面的php上是GET方式得到)

c、POST

这个就不能写在url上,可以抓包然后将输入放入,也可以用hackbar中post输入,然后和get类似了

2、注入方式

a、简单注入

简单的注入也就是说后端程序没有把我们输入的内容进行任何过滤,并且会返回数据库的内容,当我们输入一些查询其他内容的sql语句就可以直接通过web界面原有的返回数据库信息的渠道得到一些原来得不到的信息

简单注入的基本流程:

1,查看闭合方式(使用单引号和双引号来判断)

2,查看注入类型(是字符型注入还是数字型注入)

3,判断查询列数(使用group by或者order by)

4,判断回显位(构造一个新的查询语句来判断)

5,根据上面的信息来构造恶意的sql语句来获取数据库信息

b、报错注入

报错注入基本原理是当我们输入一些特殊字符,后端在执行时,会把数据库报错的信息返回给攻击者,然后攻击者可以根据返回的报错信息来进一步的构造语句或者得到数据库信息

报错注入常见函数:

1
2
3
4
5
6
7
8
1   extractvalue()
注入语句示例:id=1" union select 1,extractvalue(1,concat(0x7e,(select database()))),3 --+
2   updataxml()
注入语句示例:?id=1") and 1=updatexml(1,concat(0x7e,(**select group_concat(table name) from information_schema.tables where table_schema=database()**)),3)--+
3   floor()
注入语句示例:?id=0' union select 1,count(*),concat_ws('-',(**select group_concat(username,':',password) from users**),floor(rand(0)*2)) as a from information_schema.tables group by a --+

想要查询什么就修改星号内的内容

注入流程:

输入特殊字符发现返回错误信息,然后就可以根据信息构造新的语句

选择合适的注入函数

c、布尔盲注

布尔盲注原理:与报错注入和简单注入不同,这里不会显示任何信息,只会显示是否正确,如果正确就回显一个界面,错误就回显另一个界面,可以通过根据回显的内容来判断我们输入的内容是否错误

这也就意味这这种方式非常繁琐,需要进行非常多的判断,可以利用burpsuite来进行爆破是一种不错的选择

1>简单盲注

简单的盲注流程:

1,判断闭合方式

2,构造判断类型的语句来得到数据内容

1
示例:and length(database())=8--+//这里就是用判断语句来不断得到数据库的长度

如果正确就会返回正确的界面,但如果错误就会显示错误的界面

通过这种不断判断的方式来得到数据库的详细信息

2>时间盲注

这里是使用特殊函数sleep()来进行构造sql语句的

和上面的盲注过程类似,最后构造的语句是不通过回显内容来判断的是否正确,而是使用回显的时间或者响应的时间来判断的是否正确的

1
示例:id=1and sleep(5--+//这里是用sleep这个语法来时间盲注

如果是正确的那么服务器会休息5秒在返回内容,这样就可以判断数据库内容了

d、堆叠注入

堆叠注入原理是输入参数没有过滤“;”,从而可以输入分号来隔绝上一条查询语句并构造一条新的查询语句

1
示例:?id=1');update user set password='1234' where username='Dumb'; --+

其中我们就直接插入了一些update修改数据库内容,这样就类似直接写了一条代码在后端让后端执行。

e、二次注入

这里和前面的原理就有些不同了,上面是在一个位置进行注入查询语句

这里是通过不同的页面来进行注入,例如注册了一个账号,通过注释符等一些操作从而达到注册了一个新的账号,但可以通过其他界面修改新的账号密码来修改原先有的账号密码。

这里就用SQLi-Labs靶场的第24关来进行举例二次注入

那么先创建一个账号

SQL注入简单分享

这个账号一注册发现是已经注册过的账号了

SQL注入简单分享

那么给注册的username加一个单引号看看

SQL注入简单分享

注册成功

然后登入试试

SQL注入简单分享

登入后可以看到账号是admin‘,然后相关操作是修改密码

那么给这个试着修改密码

SQL注入简单分享

这个账号怎么都修改不了密码

那就注册过一个账号

这一次就注册了一个admin’ #的账号

发现也能注册

SQL注入简单分享

然后将admin’ #的密码给修改

发现修改的是admin的密码

然后就可以登录admin的账号了

SQL注入简单分享

f、宽字节注入

这里其实就是当我们输入单引号或者双引号的时候会被反斜杠转义,这样会导致转义后的内容不会被执行

所以我们可以使用宽字节来绕过反斜杠转义的方法

就是输入一个%df就可以了在单引号前面

1
id=-1%df' union select 1,2,3 --+

3)常见注入绕过方式

1、双写绕过

有的时候后台检测到危险函数的时候会通过将危险函数替换成空字符来规避风险

这个时候就可以使用双写绕过来绕过替换

1
2
3
例:id=1" union select 1,2,3 --+   //其中union 和select被过滤了
id=1" uniunionon selselectect 1,2,3 --+ //这样就可以绕过了

2、大小写绕过

当后台检测并不是正则匹配大小写的时候可以使用

1
2
3
例:id=1" union select 1,2,3 --+  //其中union 和select被警告说不能使用
id=1" UnIon SeLect 1,2,3 --+    //可以试试使用大小写绕过,这里的大小写是随便哪个字母

3、空格过滤绕过

有的时候后台会直接把空格给过滤了,这时候我们输入的语句就没法分割开,所以得想办法找到一个可以替换空格的字符

这里可以使用

1
2
3
%0a
${IFS}$
/**/

4、内联注释绕过

1
id=-1'/*!UnIoN*/ SeLeCT 1,2,3
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

注:在使用本系统时,使用方必须在国家相关法律法规范围内并经过国家相关部门的授权许可,禁止用于一切非法行为。使用用途仅限于测试、实验、研究为目的,禁止用于一切商业运营,本团队不承担使用者在使用过程中的任何违法行为负责。

83源码 WEB安全 SQL注入简单分享 https://www.83ym.com/95.html

认准唯一TG:@ym830

常见问题
  • 站内所有资源,针对不同等级VIP会员可直接下载,特殊资源商品会注明是否免费,指会员所享有根据选择购买的会员选项所享有的特殊服务,具体以本站公布的服务内容为准。
查看详情
  • 按照我国的法律规定,运营网络棋牌首先需要成立一个注册正规备案的公司,然后申请网站备案、文网文、ICP等等,这些证件缺一不可。 一.注册公司 在当地工商进行注册,公司名称以“XX科技有限公司”为名,如:富裕棋牌经营范围填写“计算机软硬件、网络设备的设计开发与购销”。 二.域名及网站备案 在国内从事网站经营活动就必须经过相关部门的备案,因此棋牌运营商在购买了域名后,就要到当地网监局办理网站备案,或者请服务器提供商代为备案。 三.申请文网文 文网文全称为网络文化经营许可证,是从事经营性互联网文化活动所必需的资质。一般是需要到当地省一级(省、直辖市、自治区)的文化行政部门提出申请,并经由当地的文化行政部门合法批准。次资质要求申请公司注册资金必需达到1000万,并提供游戏版权证明文件。 四.申请ICP ICP又称为增值电信业务许可证,所有网络游戏运营商均需要办理ICP许可证,此证件要求公司注册资金1000万,需到当地市级通讯管理局办理。 五.申请文网游——游戏备案 根据《网络游戏管理暂行办法》(文化部第49号)的规定,国产网络游戏在上网运营之日起30日内应当按规定向国务院文化行政部门履行备案手续。 以上就是网络棋牌游戏正规运营所必需的资质证明。一般作为正规有实力的棋牌游戏开发公司,不光要具备所有的正规资质,而且会对投资者、代理商等合作伙伴给予相关指导和协助,与合作伙伴携手共赢!
查看详情

相关文章

猜你喜欢
官方客服团队

为您解决烦忧 - 24小时在线 专业服务