level 4.
정육면체가 하나 떡하니 그려져 있는데, 1에서 2까지 가는 최단경로를 찾는 문제이다.
조건은. 정육면체 중앙을 통과해서 갈 수 없음, 가장 짧은 거리를 찾는 것, 소숫점 부분은 버림.
등이다. 그림이 있어서 더 복잡해보일지도 모르지만 level3보다도 간단하다.
어떤 길이가 나오면 루트( (2*길이)^2+(길이)^2 ) 와 같은 형식으로 계산하면 된다.(피타고라스)
import urllib2,re,math req = urllib2.Request('http://securityoverride.org/challenges/programming/4/index.php') req.add_header('cookie','PHPSESSID=쿠키') length = float(re.findall("<code style='white-space:nowrap'>\s*(.*?)\s*</code>",urllib2.urlopen(req).read())[0]) length = int(math.sqrt(math.pow(2*length,2)+math.pow(length,2))) req = urllib2.Request('http://securityoverride.org/challenges/programming/4/index.php','CSRF_TOKEN=%3C%3Fphp+echo+%24_SESSION%5B%27CSRF_TOKEN%27%5D%3B%3F%3E&string='+str(length)+'&submitbutton=+Time+Has+Expired+') req.add_header('cookie','PHPSESSID=쿠키') print urllib2.urlopen(req).read()
level 5.
5줄이 있고 각 줄마다 @가 랜덤으로 나타난다. 줄번호는 1부터 시작하고 각각 줄의 인덱스는 0부터 시작한다.
1-7, 2-2... 와 같은 형식으로 이어서 보내면 된다. 처음에는 그냥 find메소드의 반환값을 해당 위치를 넣도록
하려고 했는데, 한줄에 두개 이상의 @가 있는 경우에는 find메소드를 쓰면 알고리즘이 더 복잡해져서 그냥
반복문으로 돌렸다.
import urllib2,re,math req = urllib2.Request('http://securityoverride.org/challenges/programming/5/index.php') req.add_header('cookie','PHPSESSID=쿠키') strs = re.findall("<code style='white-space:nowrap'>\s*(.*?)\s*</code>",urllib2.urlopen(req).read())[1].split('<br />') answer = [] print strs for i in range(len(strs)-1): for j in range(0,len(strs[i])): if strs[i][j]=='@': answer.append( str(i+1)+'-'+str(j) ) answer = ', '.join(answer) print answer req = urllib2.Request('http://securityoverride.org/challenges/programming/5/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()
'Python > 2.7 simple coding(+ c++)' 카테고리의 다른 글
Security Override Programming 8 (0) | 2014.12.18 |
---|---|
Security Override Programming 6~7 (0) | 2014.12.17 |
Security Override Programming 1~3 (0) | 2014.12.17 |
Net-Force Programming 4~5,6? (0) | 2014.12.03 |
Net-Force Programming 1~3 (0) | 2014.12.01 |