Misc到Ascii_key脚本

前不久,参加了一个线上CTF感谢 @98 @黄x @墨子辰 带我拿了个三等奖,哈哈

其中一题如下:

一个简单的脚本:

s = "97 98"
list = s.split(" ")
s=""
for i in list:
    s=s+(chr(int(i)))
print s

需要手动分离Ascii字符串,所以事后就写了一下Ascii字符分离+转换

核心代码如下:

for y in range(0,lf):
    if int(f[x:x+2]) in range(36,127):
        # print chr(int(f[x:x + 2]))
        lis.append(chr(int(f[x:x + 2])))
        x = x + 2
        lf = lf - 2
        if lf==0:
            break
    elif int(f[x:x + 3]) in range(48,58) or range(97,127):
        # print chr(int(f[x:x + 3]))
        lis.append(chr(int(f[x:x + 3])))
        x = x + 3
        lf = lf - 3
        if lf == 0:
            break

原理:分别判断两位和三位数字是否在内

Ascii CTF常用字符串48-125,为防止出错,加大了范围

Ascii_key:https://github.com/hackxc/Ascii_key/

同时还写了个判断网页以及header头 寻找flag,这个就没上传,直接贴上代码

#!/usr/bin/python
#-*- coding:utf-8 -*-
import requests
import re
import urllib2
#From:www.hackxc.cc
def req(url):
    html = urllib2.urlopen(url).readlines()
    if 'flag' in str(html):
        print '[*] Html find flag!!'
        flag = re.findall('flag{(.*?)}', str(html))
        print '[+] flag{%s}' % flag[0]

def header(url):
    html = requests.get(url)
    header = html.headers
    if 'flag'in str(header):
        print '[*] Header find flag!!'
        flag = re.findall('flag{(.*?)}',str(header))
        print '[+] flag{%s}'%flag[0]

if __name__ == '__main__':
    while True:
        url =raw_input('Html-Ctf Url: ')
        print ''
        try:
            if 'http'not in url:
                url = 'http://'+url
                req(url)
                print ''
                header(url)
                print ''
            else:
                req(url)
                print ''
                header(url)
                print ''
        except:
            print ''


本博客所有文章如无特别注明均为原创。作者:小陈复制或转载请以超链接形式注明转自 小陈's Blog - 致力关注于黑客技术、渗透测试、网络信息安全
原文地址《Misc到Ascii_key脚本
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)