电脑安全

您当前的位置:主页 > 电脑安全 >

注意那些容易被忽略的MSSQL注入技巧-网络编程

来源:[db:来源]标题:   命令    编辑:电脑技术全能网 时间:2019-09-18 12:29

原标题:注意那些容易被忽略的MSSQL注入技巧-网络编程
   中心提醒:上面我要谈到一些Sqlserver新的Bug,固然自己经由长时光的尽力  上面我要谈到一些Sqlserver新的Bug,固然自己经由长时光的尽力,固然也有点荣幸的身分在内,才得以发觉,不敢一团体独享,拿进去请各人辨别。  1.对于Openrowset和Opendatasource   能够这个技能早有人曾经会了,就是应用openrowset发送当地下令。平日咱们的用法是(包含MSDN的列子)以下:  select * from openrowset('sqloledb','myserver';'sa';'','select * from table')  可见(即便从字面意思上看)openrowset只是作为一个快速的近程数据库拜访,它必需跟在select前面,也就是说须要前往一个recordset 。  那末咱们能不能应用它挪用xp_cmdshell呢?谜底是确定的!  select * from openrowset('sqloledb','server';'sa';'','set fmtonly off  exec master.dbo.xp_cmdshel l ''dir c:/''')  必需加上set fmtonly off用来屏障默许的只前往列信息的设置,如许xp_cmdshell前往的output聚集就会提交给后面的select表现,假如采纳默许设置,会前往空聚集招致select犯错,下令也就无奈履行了。  那末假如咱们要挪用sp_addlogin呢,他不会像xp_cmdshell前往任何聚集的,咱们就不能再依附fmtonly设置了,能够以下操纵:  select * from openrowset('sqloledb','server';'sa';'','select ''OK!''  exec master.dbo.sp_addlogin Hectic')  如许,下令最少会前往select OK!'的聚集,你的呆板商会表现OK!,同时对方的数据库内也会增添一个Hectic的账号,也就是说,咱们应用select 'OK!'的前往聚集诈骗了当地的select恳求,是下令可能畸形履行,通理sp_addsrvrolemember和opendatasource也能够如斯操纵!至于这个方式真正的用途,各人缓缓想吧。  2.对于Msdasql两次恳求的成绩   不晓得各人有没有试过用msdasql衔接近程数据库,固然这个api必需是sqlserver的治理员才能够挪用,那末以下:  select * from openrowset('msdasql','driver={sql server};server=server;address=server,1433;uid=sa;pwd=;database=master;network=dbmssocn','s elect * from table1 select * from table2')  当table1和table2的字段数量不雷同时,你会发觉对方的sqlserver瓦解了,连当地衔接都市失利,而体系资本占用所有畸形,用 pskill杀死 sqlserver过程后,假如不重启呆板,sqlserver要末无奈畸形启动,要末经常呈现合法操纵,我也只是碰劲找到这个bug的,详细起因我还没有摸透,并且很惊奇的是这个景象只呈现在msdasql上,sqloledb就没有这个成绩,看来成绩不是在于恳求聚集数量和前往聚集数量不婚配上,应当仍是msdasql自身的成绩,详细起因,各人一同缓缓研讨吧。  3.恐怖的后门   从前在网上看到有人说在 sqlserver上留后门能够经过增加triger、jobs或改写sp_addlogin和sp_addsrvrolemember做到,这些方式固然可行,然而很轻易会被发觉。不晓得各人有没有想过sqloledb的当地衔接映照。呵呵,比方你在对方的sqlserver上用sqlserver的治理员账号履行以下的下令:  select * from openrowset('sqloledb','trusted_connection=yes;data source=Hectic','set fmtonly off exec master..xp_cmdshell ''dir c:/''')  如许在对方的 sqlserver上树立了一个名为Hectic的当地衔接映照,只有sqlserver不重启,这个映照会始终存鄙人去,最少我当初还不晓得怎样发觉他人安排的衔接映照,好了,以上的下令运转当时,你会发觉哪怕是sqlserver没有任何权限的guest用户,运转以上这条下令也一样能经过!并且权限是 localsystem!(默许装置)呵呵!这个方式能够用来在以被入侵过取得治理员权限的sqlserver上留下一个后门了。以上的方式在 sqlserver2000 sqlserver2000SP1上经过!  别的另有一个推测,不晓得各人有没有留神过windows默许附带的两个dsn,一个是localserver一个是msqi,这两个在树立的时间是当地治理员账号衔接sqlserver的,假如对方的 sqlserver是经过自界说的power user启动,那末sa的权限就和power user一样,很难有所鸿文为,然而咱们经过以下的下令:  select * from openrowset  ('msdasql','dsn=locaserver;trusted_connection=yes','set fmtonly off exec master..xp_cmdshell ''dir c:/''')  应当能够应用localserver的治理员账号衔接当地sqlserver而后再以这个账号的权限履行当地下令了,这是后我想应当能冲破sa 谁人power user权限了。当初的成绩是sqloledb无奈挪用dsn衔接,而msdasql非治理员不让挪用,以是我当初正在查找guest挪用msdasql 的方式。  假如有人晓得这个bug怎样冲破,或有新的主意,咱们能够一同探讨一下,这个发放假如能胜利被guest应用,将会是一个很严峻的保险破绽。由于咱们后面提到的任何sql语句都能够提交给对方的asp去帮咱们履行。 上面我要谈到一些Sqlserver新的Bug,固然自己经由长时光的尽力,固然也有点荣幸的身分在内,才得以发觉,不敢一团体独享,拿进去请各人辨别。 1.对于Openrowset和Opendatasource 能够这个技能早有人曾经会了,就是应用openrowset发送当地下令。平日咱们的用法是(包含MSDN的列子)以下...  上面我要谈到一些Sqlserver新的Bug,固然自己经由长时光的尽力,固然也有点荣幸的身分在内,才得以发觉,不敢一团体独享,拿进去请各人辨别。  1.对于Openrowset和Opendatasource   能够这个技能早有人曾经会了,就是应用openrowset发送当地下令。平日咱们的用法是(包含MSDN的列子)以下:  select * from openrowset('sqloledb','myserver';'sa';'','select * from table')  可见(即便从字面意思上看)openrowset只是作为一个快速的近程数据库拜访,它必需跟在select前面,也就是说须要前往一个recordset 。  那末咱们能不能应用它挪用xp_cmdshell呢?谜底是确定的!  select * from openrowset('sqloledb','server';'sa';'','set fmtonly off  exec master.dbo.xp_cmdshel l ''dir c:/''')  必需加上set fmtonly off用来屏障默许的只前往列信息的设置,如许xp_cmdshell前往的output聚集就会提交给后面的select表现,假如采纳默许设置,会前往空聚集招致select犯错,下令也就无奈履行了。  那末假如咱们要挪用sp_addlogin呢,他不会像xp_cmdshell前往任何聚集的,咱们就不能再依附fmtonly设置了,能够以下操纵:  select * from openrowset('sqloledb','server';'sa';'','select ''OK!''  exec master.dbo.sp_addlogin Hectic')  如许,下令最少会前往select OK!'的聚集,你的呆板商会表现OK!,同时对方的数据库内也会增添一个Hectic的账号,也就是说,咱们应用select 'OK!'的前往聚集诈骗了当地的select恳求,是下令可能畸形履行,通理sp_addsrvrolemember和opendatasource也能够如斯操纵!至于这个方式真正的用途,各人缓缓想吧。  2.对于Msdasql两次恳求的成绩   不晓得各人有没有试过用msdasql衔接近程数据库,固然这个api必需是sqlserver的治理员才能够挪用,那末以下:  select * from openrowset('msdasql','driver={sql server};server=server;address=server,1433;uid=sa;pwd=;database=master;network=dbmssocn','s elect * from table1 select * from table2')  当table1和table2的字段数量不雷同时,你会发觉对方的sqlserver瓦解了,连当地衔接都市失利,而体系资本占用所有畸形,用 pskill杀死 sqlserver过程后,假如不重启呆板,sqlserver要末无奈畸形启动,要末经常呈现合法操纵,我也只是碰劲找到这个bug的,详细起因我还没有摸透,并且很惊奇的是这个景象只呈现在msdasql上,sqloledb就没有这个成绩,看来成绩不是在于恳求聚集数量和前往聚集数量不婚配上,应当仍是msdasql自身的成绩,详细起因,各人一同缓缓研讨吧。  3.恐怖的后门   从前在网上看到有人说在 sqlserver上留后门能够经过增加triger、jobs或改写sp_addlogin和sp_addsrvrolemember做到,这些方式固然可行,然而很轻易会被发觉。不晓得各人有没有想过sqloledb的当地衔接映照。呵呵,比方你在对方的sqlserver上用sqlserver的治理员账号履行以下的下令:  select * from openrowset('sqloledb','trusted_connection=yes;data source=Hectic','set fmtonly off exec master..xp_cmdshell ''dir c:/''')  如许在对方的 sqlserver上树立了一个名为Hectic的当地衔接映照,只有sqlserver不重启,这个映照会始终存鄙人去,最少我当初还不晓得怎样发觉他人安排的衔接映照,好了,以上的下令运转当时,你会发觉哪怕是sqlserver没有任何权限的guest用户,运转以上这条下令也一样能经过!并且权限是 localsystem!(默许装置)呵呵!这个方式能够用来在以被入侵过取得治理员权限的sqlserver上留下一个后门了。以上的方式在 sqlserver2000 sqlserver2000SP1上经过!  别的另有一个推测,不晓得各人有没有留神过windows默许附带的两个dsn,一个是localserver一个是msqi,这两个在树立的时间是当地治理员账号衔接sqlserver的,假如对方的 sqlserver是经过自界说的power user启动,那末sa的权限就和power user一样,很难有所鸿文为,然而咱们经过以下的下令:  select * from openrowset  ('msdasql','dsn=locaserver;trusted_connection=yes','set fmtonly off exec master..xp_cmdshell ''dir c:/''')  应当能够应用localserver的治理员账号衔接当地sqlserver而后再以这个账号的权限履行当地下令了,这是后我想应当能冲破sa 谁人power user权限了。当初的成绩是sqloledb无奈挪用dsn衔接,而msdasql非治理员不让挪用,以是我当初正在查找guest挪用msdasql 的方式。  假如有人晓得这个bug怎样冲破,或有新的主意,咱们能够一同探讨一下,这个发放假如能胜利被guest应用,将会是一个很严峻的保险破绽。由于咱们后面提到的任何sql语句都能够提交给对方的asp去帮咱们履行。

上一篇:MSSQL各种写法的效率问题-网络编程

下一篇:没有了