banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Hỏi về cách gây lỗi với union trong sql inj  XML
  [Question]   Hỏi về cách gây lỗi với union trong sql inj 11/03/2008 07:46:22 (+0700) | #1 | 118869
[Avatar]
phstiger
Member

[Minus]    0    [Plus]
Joined: 23/01/2007 17:47:26
Messages: 261
Offline
[Profile] [PM]
Thường thấy trong mấy shop khi dùng union đoán đúng colum sẽ xuất ra 1 hoặc vài con số.
Vậy nguyên nhân gây ra lỗi là do đâu.
Ví dụ tạo 2 table
create table test1(
soid int,
mota varchar(20)
)
insert into test1 values (1,'Dang o so mot')
insert into test1 values (2,'Dang o so hai')
insert into test1 values (3,'Dang o so ba') 

và table 2 là: admin(username,password)

ý mình hỏi là câu query của nó như thế nào mà lại xuất ra được như vậy.
Đến đấy mình nghĩ là câu quẻy có thề là:

select * from test1 where soid=2 union select 0,1 from users
 


Thế nhưng mình test thử trong SQL Analyzer của SQL server 2005 thì nó báo là
Syntax error converting the varchar value 'Dang o so hai' to a column of data type int. 


còn nếu câu query là:
select * from test1 where soid=2 union select 0,1,2 from users 

thì
All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists. 

Như vậy nếu đoán đúng số column thìo phải báo 0 hay 1 ở "union select 0,1 from users" mới giống như trong các shop.
Vậy thực hư thế nào. Anh rành chỉ giúp.......
Thanks

[Up] [Print Copy]
  [Question]   Hỏi về cách gây lỗi với union trong sql inj 11/03/2008 09:53:01 (+0700) | #2 | 118874
[Avatar]
vivashadow
Member

[Minus]    0    [Plus]
Joined: 08/01/2008 12:36:49
Messages: 95
Offline
[Profile] [PM]

phstiger wrote:
Thường thấy trong mấy shop khi dùng union đoán đúng colum sẽ xuất ra 1 hoặc vài con số.
Vậy nguyên nhân gây ra lỗi là do đâu.
Ví dụ tạo 2 table
create table test1(
soid int,
mota varchar(20)
)
insert into test1 values (1,'Dang o so mot')
insert into test1 values (2,'Dang o so hai')
insert into test1 values (3,'Dang o so ba') 

và table 2 là: admin(username,password)

ý mình hỏi là câu query của nó như thế nào mà lại xuất ra được như vậy.
Đến đấy mình nghĩ là câu quẻy có thề là:

select * from test1 where soid=2 union select 0,1 from users
 


Thế nhưng mình test thử trong SQL Analyzer của SQL server 2005 thì nó báo là
Syntax error converting the varchar value 'Dang o so hai' to a column of data type int. 


còn nếu câu query là:
select * from test1 where soid=2 union select 0,1,2 from users 

thì
All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists. 

Như vậy nếu đoán đúng số column thìo phải báo 0 hay 1 ở "union select 0,1 from users" mới giống như trong các shop.
Vậy thực hư thế nào. Anh rành chỉ giúp.......
Thanks

 

Bạn đã gây được lỗi rồi đó hỏi làm gì nữa smilie
Union chỉ kết hợp dc các câu select/bảng con có cùng số cột và các cột tương ứng phải cùng kiểu.
Shop là gì vậy????Kiến thức lủng củng quá, như shop tạp hóa, kiếm sách Lý thuyết DataBase ôn lại cho kĩ đi đã smilie .


[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|