ctf之简单编程,字符统计

<a target=_blank href="http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=37">点击打开链接</a>ctf中的一道关于PPC的题目,转载的代码,曾经全国大学生信息安全竞赛也遇到过相同的题目
# -*- coding: utf-8 -*-

import urllib2
import urllib
import cookielib
import string
import re

# 需要提交post的url
TARGET_URL = "http://ctf.idf.cn/game/pro/37/"

# 设置一个cookie处理器
req = urllib2.Request(TARGET_URL)
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
res = opener.open(req)

# 通过正则匹配抓到需要统计的字符串
content = res.read()
check_text = re.findall(r'<hr />(.*)<hr />', content, re.S)[0]

# 简单的统计
char_count = [0, 0, 0, 0, 0]
for txt in check_text:
    if txt == 'w':
        char_count[0] += 1
    elif txt == 'o':
        char_count[1] += 1
    elif txt == 'l':
        char_count[2] += 1
    elif txt == 'd':
        char_count[3] += 1
    elif txt == 'y':
        char_count[4] += 1

        # 将数字转换成字符串
result = ""
for nIndex in char_count:
    result += str(nIndex)
print "Result = ", result

# 接下来就是提交了
value = {'anwser': result}
data = urllib.urlencode(value)
request = urllib2.Request(TARGET_URL, data)
response = opener.open(request)
html = response.read()
print html
C:\Python27\python.exe E:/Desktop/2.py
Result =  91091011
 <html>
<head><title>字符统计</title></head><body>


你看起来好厉害的样子。。好吧,答案就是wctf{timeout_prog} <hr />


<b>请听题:</b>给你2秒钟的时间,告诉我下面这坨字符中有多少个w,多少个o,多少个l,多少个d和多少个y。
把这些数字串成一个字符串提交一下就可以了,很简单吧~
<hr />
QXV $w|^T:aR$N8?x*wp8^%Kh!tHtr;Wmf`7PAYne%j!|vQH_Id#ocf+?kYL_]is3DHhP9~jaV Gz5qTyj-`MgQ-x&_cVzZJZj;J;z]a+,SsF6,1qqaWa*D|hc@unD+]^l+H$Sk-8Vb4N3)o;1*h ##Rkona7F;4[CXebIHNhIzbngW`JFhmyg5|fe7Q1GnWMkQtn9R;1G-1))g) (+~k2(@%;@;mNAU*?&to+sftcw Yl=XU1Q=F0=`wX[85,J!}* T_43X{1m--hzVhe4jpjf)XCr1?3@^HnccrxHe)p[]1~@l3!PDPRC^2]@yI|-^%ENnt@^;c)f:+O+-Q`4z`]P,k)ZNilEx3x:T=Q(:o6(UX]Aim*ON%eX{:R*)pxh{_XnR5M.}$|+65^.L6};`$-ikSTXAih-wx*4AzblU719$.}eH@( 7_vBzbHwZPHt9_dU}&#RKr6sQ/B.m?B%F54dHnJP82c,AFsfWwIibA{q)/fbAQtF-{uXaI8(=$Tg,(]21Z*R&[Ts,yBX5jR0nyN0=%6-ui9 /B05*=7AOmql[HLvd~%~^o}xeSJV,1t-shc~Gk4VNL1axRCbjhYUz:25/7~6BB?_gs=W3pCYzbD PW!nmJ|pD](zA*|ebUm`0[CWb(eUVD^cq[Naqe rnPW@`-kafeb rs$X;nZ(@XH8V6.G6^wv$ZC:BjxXQEoS}L`#TYUFb8Mje,xzA[7Q7mdzM.?sw2@OyFO-H#s7+qAL{bHwj}JpO4!HQvl%I]Pn;j#mkn(KZ{FuI|uK5Kx^$;!kEE)#/ ~RU=]WmS%%5 4U1gdOFIm*o.F,Fyf=^JUCHl=U6p3&CTLe@vuHug!u]7@|[v:[Aj@h}{_ZzC4YDv^zuL5L9nS~4 r%=yxwnzGX .LqO7_(m$9c35ci]+,7@iAAs]4-]xL|,##caE;PG.q?~1YRF!B78s-sCpVdZxB[?:ZUN^%~)TRG+hAnlwk4^AYA{AMI,1NsBs.QIw8qL.J7uzs4K,d1 f.x9)TZ@qZz: <hr />
<form action="" method="post">
  <p>答案: <input type="text" name="anwser" /></p>
  <input type="submit" value="走你!" />
</form>
</body>
</html>








Process finished with exit code 0

以上是运行出来的结果,提交wctf即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值