Python/2.7 simple coding(+ c++)

Security Override Programming 4~5

qkqhxla1 2014. 12. 17. 20:25

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