zoukankan      html  css  js  c++  java
  • Axublog1.1.0代码审计

    Axublog1.1.0代码审计

    1,后台登录处的sql注入漏洞

    漏洞分析:

    首先分析其login.php页面,发现用户名和密码输入后是使用的jsloginpost函数进行处理的。jsloginpost函数是在c_login.php文件中定义的。

    打开c_login.php页面,分析jsloginpost代码,发现jsloginpost并没有对user和psw进行过滤处理,而是直接带入了sql语句进行查询,所以此处造成了sql注入漏洞。

    漏洞利用:

    我们只需要在后台管理员登录处使用万能密码即可成功登录,例如

    user:admin' or 1=1#
    psw: 随意
    或者
    user: admin' or 1#
    psw: 随意
    

    2,前台反射型xss漏洞

    漏洞分析:

    此漏洞是搜索功能处的xss漏洞,由于在search.php中对word参数没有过滤而产生的。首先分析search.php文件,在文件中首先获取搜索数据给word参数,然后进行判断,如果没有传参数,则直接调用index()函数,如果传递了参数则调用so()函数。

    进入so()函数继续分析:在so()函数中也没有对word参数进行任何过滤处理,而是包含了一个模板文件search.mb,继续跟进模板文件:

    模板文件search.mb分析:发现在模板文件中也是直接对word参数直接输出,而没有任何过滤,所以此处就造成了xss漏洞

    漏洞利用:

    3,前台sql注入漏洞

    在第二个分析xss漏洞的过程中发现,在其模板文件search.mb中还调用了searchlist()函数,继续跟进searchlist()函数(searchlist函数在search.php文件中)

    发现在searchlist()函数中同样没有对word参数进行过滤,而直接带入了sql语句进行查询,所以此处就造成了sql注入漏洞。

    漏洞利用:

    执行如下poc时候返回正确结果:
    http://192.168.110.152/axublog/search.php?word=广%' or 1=1--+
    执行如下poc时候无结果返回:
    http://192.168.110.152/axublog/search.php?word=广%' or 1=2--+
    

    4,后台任意文件写入漏洞

    注明:这个后台文件上传漏洞不需要登录后台即可直接getshell

    漏洞点:admin/theme.php

    edit2save()函数进行了文件的写入操作,将REQUEST请求的的path参数和content参数分别作为作为报存的路径和内容传入file_put_contents中进行保存操作。

    继续寻找edit2save()函数调用点:发现当g=edit2save时调用该函数。

    漏洞利用:

    请求:
    http://192.168.110.152/axublog/admin/theme.php?g=edit2save
    
    post:
    path=./shell.php&content=<?php phpinfo();?>
    

    5,后台多个sql注入漏洞

    漏洞点:admin/admin.php

    定位edit()函数,发现id参数没有经过过滤而直接带入sql语句进行查询了。

    但是这里在获取id参数之前调用了chkoutpost()函数进行验证。跟进chkoutpost()函数。class/c_other.php

    chkoutpost()函数仅仅验证了refer是否为空的情况,所以我们在利用这个sql注入漏洞是时候给refer随便赋个值即可。

    查看edit函数在哪里被调用了:发现当g=edit时候调用edit函数。

    漏洞利用:

    poc:
    http://192.168.110.152/axublog/admin/admin.php?g=edit&id=1 union select 1,version(),3,4--+
    
    Referer: 任意填写
    

    6,既然这个cms的sql注入都没有进行防御,那么肯定还存在n个sql注入漏洞,此处就不一一说明了。

    7,任意文件读取漏洞

    漏洞点:admin/app.php

    首先定位到edit2()函数,在edit2函数中通过调用file_get_contents函数获取变量(path文件中的内容,然而变量)path的值是通过request的方式从path参数获取的,并且对变量$path没有任何过滤而直接带入到file_get_contents函数进行获取文件内容,所以此处就造成了任意文件读取漏洞。

    跟进edit2()函数,寻找调用方法:当g=edit2的时候调用edit2函数。

    漏洞利用:

    poc:
    http://192.168.110.152/axublog/admin/app.php?g=edit2&path=./app.php
    

    8,代码执行漏洞

    漏洞点:admin/html.php

    漏洞分析:在生成about页面的时候调用了ob_get_contents函数执行about.mb里面的php代码,并且没有进行任何过滤,所以我们可以通过向about.md文件中写入php代码,从而使其被执行。然而在后台管理页面中正好有编辑about页功能。

    漏洞利用:

    首先编辑about页,然后向其中写入想要执行的php代码即可,此处我使用file_put_contents函数生成一个文件名为shell2.php的探针文件。

    保存编辑后选择生成about:

    然后我们的代码就被成功的执行了,访问shell2.php:

    9,代码执行漏洞

    漏洞点:admin/setconfig.php

    漏洞分析:在setconfig.php中对cmsconfig.php文件进行了编辑处理,但是在编辑过后,并没有对所编辑的内容进行过滤处理,所以导致了我们可以向其中写入php代码造成代码执行漏洞。

    漏洞利用:

    在管理后台的基本设置处,然后再网站描述或者其他处写入需要执行的php代码即可,写入前需要先闭合原有的引号,payload可以如下:

    ";phpinfo();?>
    

    res:
    http://www.ttk7.cn/post-82.html

    https://blog.csdn.net/sweet0swat/article/details/89056383

  • 相关阅读:
    flex-direction
    flex-grow
    Push API
    ServiceWorker.state
    Using Service Workers
    Promise.then
    Promise()
    Using promises
    node-rsa
    async.waterfall
  • 原文地址:https://www.cnblogs.com/v01cano/p/12416366.html
Copyright © 2011-2022 走看看