sql注入

一个很棒的博文sql注入

前期学习知识

1. PHP连接数据库(MySQL)

主要采用mysqli_connnect函数与数据库建立连接,mysqli_connect函数详解可参考菜鸟教程

$con=mysqli_connect(
	'127.0.0.1',//主机名
	'',//数据库用户名
	'',//数据库密码
	'',//数据库名
	'',//数据库采用端口号,可以不填,默认是3306
);
if(!$con){
	//错误提醒
	echo "error:connection";
	exit;
}

2.与数据库的交互

主要是mysqli_query函数对已经获取的数据库进行操作,mysqli_query函数详解可参考菜鸟教程
好像看到过mysqli_multi_query函数是对于多个数据库指令操作,没仔细去了解,有时间再去看看链接暂时放这里菜鸟教程
输出结果使用到了mysqli_fetch_array函数,详解菜鸟教程

//带参
$username=$_GET['username'];
//获取数据库中的某一个表
$res=mysqli_query(
	$con,
	"SELECT * FROM USERS WHERE NAME='$username'"//举例,这里放一条正常的数据库增删改查语句都可以。
)
while($row=mysqli_fetch_array($res)){
	var_dump($row);
}

3.mysql的一些小知识点

  • mysql的注释
#语句
-- 语句
/*语句*/
/*!语句*/   内联注释,!后如果有版本号,实际版本高于写入版本号则注释成功,若低于或者没有版本号,则注释失败,执行语句。
  • mysql的一些表和函数
    主要是mysql 的information_schema视图,可以自己打开mysql看看,主要是其中的tables和columns表,注入可能需要用到。tables表中可以通过数据库名(table_schema)查询到该数据库对应的表(table_name),columns可以通过表名(table_name)查询到改表对应的字段值(column_name)。

关于sql注入

在输入信息时携带上一些sql语句,在网站后台拼合输入信息执行查询语句时,执行了携带的sql语句。

1.判断注入方式和闭合方式

参考这篇sql注入方式和闭合方式

  • 关于注入方式,这篇可能会更加详细一点,介绍了四种(联合注入、基于错误注入、布尔盲注、延时注入)基本的四种SQL注入方式
  • 关于闭合方式,这篇讲得很不错,SQL注入基础 - 判断注入类型及闭合方式。介绍了字符型和数值型,数值型很简单,不用闭合,字符型闭合方式比较多,需要多试,一般是()’’"",以及它们的搭配使用。

2.绕过手段

网站为了防止sql注入会对输入的信息在执行语句前进行一些验证和措施。对于这些验证和措施,我们可以在输入信息中采取一些针对手段来绕过。
参考sql注入绕过,这篇还可以

3.盲注

具体可以参考这篇sql注入盲注,也很不错哦。

4.报错注入

面对一些不会输出查询结果,但是会输出错误信息时使用。

(1).xpath语法错误

主要是运用函数extractvalue和updatexml。
xpath语法可以参考这个菜鸟教程,我暂时理解的就是类似这种/***/***/***/,只出现/.@这几种特殊字符。

  • extractvalue(string,string),第一个参数是xml文档的名称,第二个参数是一个xpath格式的字符串。函数作用为在对应的xml文档中返回包含查询的xpath的字符串。当xpath字符串不符合xpath的语法规则时,会报错,报错信息中会输出不符语法规则的xpath字符串。
  • updatexml(string,string,string),第一个参数是xml文档的名称,第二个参数是xpath格式字符串,第三个文档是替换查找的结果值。函数作用是用新的值替换查找到xml文档对应内容。同样当xpath字符串不符合xpath语法时,会报错,报错信息中会输出不符语法规则的xpath字符串。
  • 如果我们制造一个不和语法的字符串,且把注入语句的输出结果放在这个字符串中,那么就可以做到输出执行结果的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值