当前位置:网站首页 > SQL数据库编程 > 正文

sqlldr只导入指定字段(sqlldr导入指定字段为null)



刚开始只接触基本知识和简单注入

原因是将用户输入的数据当作代码执行,违背了数据和代码相分离的初衷。所以,sql注入需要我们有插入恶意代码的地方,而且代码可以被执行。

刚开始,总是不知道构造闭合是什么意思。问了AI突然顿悟额。

比如,正常用户输入内容之后是user_id = '$user_id'。假如我们要插入恶意代码,就需要考虑闭合代码。但是,有时候我们故意查看报错信息,就不构造闭合。可以输入1' OR '1'='1,这样就会变成SELECT * FROM users WHERE user_id = '1' OR '1'='1'。原来系统只会给出一个''。这样原本的''就会跟我们输入的不闭合语句配套,从而闭合语句。注意看标蓝的引号。这就是构造闭合!还可以通过#注释掉后面的单引号。

注入点判断

【干货】如何判断 Sql 注入点_判断是否存在sql注入-CSDN博客

有的网站是get请求。有的是post,不管怎么说,我们都可以寻找注入点。有时候甚至注入到UA和COOKIE里面。下面是等待我学习的XFF注入。

XFF注入
在用户登录注册模块在 HTTP 头信息添加 X-Forwarded-for: 9.9.9.9' ,用户在注册的时候,如果存在安全隐 患,会出现错误页面或者报错。从而导致注册或者登录用户失败。
burpsuite 抓包,提交输入检测语句:

 
   

两次提交返回不一样,存在 SQL 注入漏洞

有字符形式和数字形式等等,用and 1= 1,'1'='1'这样子搞出来。

数字可以id = -1,字符可以and 1=2。让页面回显出来自己想要的东西。

下面是一些判断数据库类型的方法。

端口扫描

如果可以对主机进行端口扫描,可以根据是否开启对应端口,来大概判断数据库类型。
Oracle
默认端口号:1521
SQL Server
默认端口号:1433
MySQL
默认端口号:3306
PostgreSql
默认端口号:5432







网站类型与数据库的联系

asp:SQL Server,Access
.net :SQL Server
php:Mysql,PostgreSql
java:Oracle,Mysql


根据注释符判断

“#”是MySQL中的注释符,返回错误说明该注入点可能不是MySQL,另外也支持’-- ',和/* */注释(注意mysql使用-- 时需要后面添加空格)

“null”和“%00”是Access支持的注释。

“--”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。

“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。

根据数据库特有表进行判断

1、mssql数据库

 
   

2、access数据库

 
   

3、mysql数据库(mysql版本在5.0以上)

 
   

4、oracle数据库

 
   

根据其返回的错误类型

ORACLE
ORA-01756:quoted string not properly terminated
ORA-00933:SQLcommand not properly ended
MS-SQL
Msg 170,level 15, State 1,Line 1
Line 1:Incorrect syntax near ‘foo
Msg 105,level 15,state 1,Line 1
Unclose quotation mark before the character string ‘foo
MYSQL
you have an error in your SQL syntax,check the manual that corresponds to you mysql server version for the right stntax to use near ‘’foo’ at line x








  • :当前数据库用户
  • :当前数据库名
  • :当前使用的数据库版本
  • :数据库存储数据路径
  • :联合数据,用于联合两条数据结果。如 
  • :和  类似,如 ,用于把多条数据一次注入出来
  • :用法类似
  •  和 :用于 hex 编码解码
  • :返回字符的 ASCII 码值
  • :把整数转换为对应的字符
  • :以文本方式读取文件,在 Windows 中,路径设置为 
  • :权限较高时可直接写文件

使用order by来判断有几列。  

 是 mySQL 自带的一张表,这张数据表保存了 MySQL 服务器所有数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等。该数据库拥有一个名为 tables 的数据表,该表包含两个字段 table_name 和 table_schema,分别记录 DBMS 中的存储的表名和表名所在的数据库。

  • 下面就是用联合查询得到数据库里面的表名,一般步骤我们都是先获取当前库 (  ) 的表,再去看其他库的。

基于   和 

  • 面就是去获得 表 的对应字段名 方便我们最后一步的查询工作

使用   和 

但是联合查询必须保持列一致,因此可以使用

 
  

执行这个查询后,会得到一个包含一列数据的结果集,该列中的每一行的值都是 1,可以凑一列出来!

mysql 5.0以上版本自带数据库,information_schema记录有当前mysql下所有数据库名,表名,列名信息。下列是存放各信息的名字

information_schema.schemata:记录数据库信息的表
information_schema.tables:记录表名信息的表
information_schema.columns:记录列名信息的表
schema_name 数据库名
table_name 表名
column_name 列名
table_schema 数据库名





到此这篇sqlldr只导入指定字段(sqlldr导入指定字段为null)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • sql文本格式(sql文本格式转化为日期格式)2025-06-06 11:18:05
  • sqlserver while循环(sqlserverwhile循环表)2025-06-06 11:18:05
  • 增删改查sql语句例子(sql的增删改查指什么)2025-06-06 11:18:05
  • sql文件格式(sql文件格式后缀)2025-06-06 11:18:05
  • mysql导入sql文件命令行语句选择表(mysql命令行导入sql文件命令)2025-06-06 11:18:05
  • orecle和mysql区别(oracal和mysql的区别)2025-06-06 11:18:05
  • mysql主键(mysql主键和外键的建立)2025-06-06 11:18:05
  • plsql注册码过期(plsql12注册码永久)2025-06-06 11:18:05
  • sql窗口函数是什么意思(sql 窗口函数 分析函数)2025-06-06 11:18:05
  • sql文件怎么导入数据库plsql(plsql sql文件导入)2025-06-06 11:18:05
  • 全屏图片