网站入侵

网站入侵,入侵渗透,怎么样入侵网站,黑客怎么拿站,黑客接单

一次SQL注入到代码审计之路

                       

一、找网站SQL注入点

测试结束后,发现下图显示了一个信息查询框。一般信息查询框将与数据库存交互。

我输入数字1,通常会提示木材查询相关信息。

那我们使用1′测试后,发现相关信息的提示框没有弹出,也没有数据输出。大致判断这一点的存在sql注入,输出错误信息不正确。

大概猜测出SQL语句为 :

select * from A where id ='$_POST['id']';

没有过滤用户输入的数据。

构建一个闭合语句,再次确认是否确认存在sql注入。

payload:1′ #

通过上面简单测试,已经确定了,肯定存在sql注入。

二、sqlmap跑一下

将数据包保存到文件中,直接使用sqlmap跑。很震惊,竟然有51个库。

查询后,找到后台的账号密码,然后我开始找到后台的艰难旅程。

三、找后台

我没有找到后台,但了robots文件。

从robots上看到是PHPCMS系统

使用PHPCMS系统通用后台地址admin.php,m=admin&c=index&a=login,不行,测完就发admin模型下的index控制器是存在的,当我们访问它时,它会自动跳到主页上,这也应该是开发人员后来修改的,专门做防黑。

四、寻找通用漏洞

这一步就不多说了。我测量了暴露的漏洞,但都不行,说明开发者还是有安全意识的,修复了所有的漏洞。

五、返回sqlmap

另一个想法是使用它sqlmap –os-shell直接获取shell,但这基本上是不可能的,因为网站的文件基本上是755权限,没有写作权限就会失败。然后我仍然抱着一丝希望去测试它。

使用sqlmap –os-shell需要知道网站的绝对路径,网站绝对路径可以通过中间件配置文件查看。

首先,我需要知道网站使用了什么中间件。nmap跑步,只看到404nginx ,nginx配置文件 //usr/local/nginx/conf/ngixn.conf

用sqlmap –file-read 去读nginx配置文件。通过配置文件只看到默认配置信息

要注意的是,如果是的话nginx.conf文件没有看到有价值的信息,有可能存在/usr/local/nginx/conf/vhost/网站域名.conf 这个位置,果然就是它。

如果你找到了真正的路径,你可以使用 sqlmap –os-shell然而,我当时预计的正式未写入权限,导致拿走shell失败。

六、使用sqlmap读取网站源码

通过上面的思路我们已经知道网站的真实路径,知道了是PHPCMS系统,然后我们可以读取网站的文件。

1、阅读路由文件 caches\configs\route.php 查看路由文件没有问题。

2、查看系统文件 caches\configs\system.php (本文件可查看域名访问背景是否打开)

3、我们上面说的admin模型下index控制器可以访问,知识会跳转到主页,然后我们下载index查看控制器文件。phpcms\modules\admin\index.php ,查看index控制器下的login方法没有修改。

七、侧渗透试验

有51个网站,我随机看了几个,数据库的结构是一样的,说明是同一个网站建设系统。

那我们用nmap扫描服务发现有8080服务,这个网站8080端口的网站dedecms系统搭建的时候,我碰巧有后台密码,可以通过dedecms上传文件。

八、代码审计

通过以上大致判断,admin模块index控制器有问题。

查看admin多了一个模块MY_index.php控制器,

查看MY_index.php 发现里面有一个结构函数,大概意思是打开这个方法判断你。right_enter的session无论值是空的,如果是空的,那就回到主页,这就是为什么我们一开始就不能打开后台。

经过看phpcms开发手册(我不熟悉这个系统的二次开发,我只知道是一个MVC结构的php如果需要对控制器进行二次开发,则需要在同级目录中创建一个程序MY_*.php文件大致意味着程序在创建文件后运行index当模块运行时MY_index.php里面的代码。

我明白了,因为没有,$_SESSION[‘right_enter’]因此,无法登录,因此需要先打开后台$_SESSION[‘right_enter’]赋值。经过不懈努力,找到了正确的文件。

这个文件大概意思就是当我运行改文件时会将$_SESSION[‘right_enter’]=1,然后跳转到登录界面。

       

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.