level 6.
x^2 + 3x + 4 같은 다항식은 (x+1)(x+3) 과 같이 변형해서 보내야 한다.
몇번 돌려보니 +만 나오고, 대략 -50000~0사이의 값이 해가 된다. 그냥 가장 단순한 알고리즘으로
하나하나 대입해봐서 값이 맞으면 그걸 값으로 정하는 알고리즘으로 짰다.
주의점 : 방정식을 만들어서 그냥 보내면 안된다. 데이터 전송시 url인코딩되어져서 보내지는데
(,)가 인코딩되지 않고 그냥 보내면 서버에서 알아먹질 못한다. urllib2.quote()같은걸로 한번 인코딩해서 보내야
한다.
import urllib2,re,math req = urllib2.Request('http://securityoverride.org/challenges/programming/6/index.php') req.add_header('cookie','PHPSESSID=쿠키') strs = re.findall("<code style='white-space:nowrap'>\s*(.*?)\s*</code>",urllib2.urlopen(req).read())[0].split(' + ') print strs one = int(strs[1][:-1]) two = int(strs[2]) i = -99999; answer = []; count = 0 while 1: if count == 2:#이차방정식은 해가 두개이다. break elif math.pow(i,2)+one*i+two == 0: answer.append(i) count += 1 i += 1 answer = urllib2.quote('(x+'+str(-answer[0])+')(x+'+str(-answer[1])+')') #답에 맞게 포맷을 만든다. req = urllib2.Request('http://securityoverride.org/challenges/programming/6/index.php','CSRF_TOKEN=%3C%3Fphp+echo+%24_SESSION%5B%27CSRF_TOKEN%27%5D%3B%3F%3E&string='+answer+'&submitbutton=+Time+Has+Expired+') req.add_header('cookie','PHPSESSID=쿠키') print urllib2.urlopen(req).read()
level 7.
어떤 수가 주어지면 해당 수의 약수를 구한 후, 그 약수가 소수이면 남겨뒀다가 그 소수들의 합을 보내면 된다.
import urllib2,re,math req = urllib2.Request('http://securityoverride.org/challenges/programming/7/index.php') req.add_header('cookie','PHPSESSID=쿠키') strs = re.findall("<code style='white-space:nowrap'>\s*(.*?)\s*</code>",urllib2.urlopen(req).read())[0] sum = 0 for i in range(2,int(strs)): if int(strs)%i==0: #약수이면 flag = 1 for j in range(1,i): if i%j==0 and j!=1: #소수가 아니면 flag = 0 break if flag: #소수이면 더함 sum += i req = urllib2.Request('http://securityoverride.org/challenges/programming/7/index.php','CSRF_TOKEN=%3C%3Fphp+echo+%24_SESSION%5B%27CSRF_TOKEN%27%5D%3B%3F%3E&string='+str(sum)+'&submitbutton=+Time+Has+Expired+') req.add_header('cookie','PHPSESSID=쿠키') print urllib2.urlopen(req).read()
'Python > 2.7 simple coding(+ c++)' 카테고리의 다른 글
Security Override Programming 9 (0) | 2014.12.18 |
---|---|
Security Override Programming 8 (0) | 2014.12.18 |
Security Override Programming 4~5 (0) | 2014.12.17 |
Security Override Programming 1~3 (0) | 2014.12.17 |
Net-Force Programming 4~5,6? (0) | 2014.12.03 |