본문 바로가기
  • Tried. Failed. Logged.
728x90

분류 전체보기721

웹 해킹 - NoSQL Injection 조건 표현식 https://book.hacktricks.xyz/pentesting-web/nosql-injection NoSQL injection - HackTricks Brute-force login usernames and passwords from POST login book.hacktricks.xyz [$ne] : 같지 않을 경우(not equals) [$regex] : 정규표현식 [$eq] : 같다(=) [$lt] : 작다() [$lte] : 작거나 같다() $regex로 패스워드 길이 알아내기 "password": {"$regex":".{1}"} => admin "password": {"$regex":".{2}"} => admin ... "password": {"$regex":".{5}"} => admin.. 2021. 12. 9.
Dreamhack - 워게임, Mango 풀이 https://dreamhack.io/wargame/challenges/90/ Mango Description 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Serv dreamhack.io NOSQL Injection에 관한 문제다. 페이지로 들어가니깐 다짜고짜 /login에서 로그인을 하라고 뜬다. 주소에 복사 붙여넣기를 해보니 guest로 로그인이 됐는지 화면에는 guest만 뜸 만약에 uid 값으로 admin을 주게 되면 페이지에는 filter라고 뜨게 된다. 문제에서 제공하는 서버 파일을 확인해보면 .. 2021. 12. 9.
프로그래머스 - 고양이와 개는 몇 마리 있을까, MySQL https://programmers.co.kr/learn/courses/30/lessons/59040 코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SELECT ANIMAL_TYPE, count( ANIMAL_TYPE ) AS count FROM ANIMAL_INS WHERE ANIMAL_TYPE = 'Cat' UNION SELECT ANIMAL_TYPE, count( ANIMAL_TY.. 2021. 12. 8.
프로그래머스 - 오픈채팅방, 파이썬 https://programmers.co.kr/learn/courses/30/lessons/42888?language=python3 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr users = {} def solution(record): answer = [] for line in record: data = line.split() action, userId = data[0], data[1] if action in ("Enter", "Change"): nick = data[2] users[userId] = ni.. 2021. 12. 8.
프로그래머스 - 문자열 내 p와 y의 개수, 파이썬 https://programmers.co.kr/learn/courses/30/lessons/12916 코딩테스트 연습 - 문자열 내 p와 y의 개수 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 programmers.co.kr import re def solution(s): if re.subn("[pP]", "", s)[1] == re.subn("[yY]", "", s)[1]: return True else: return False 정규 표현식 re.subn으로 문자 길이 알아내기 2021. 12. 8.
Lord of SQLinjection - succubus https://los.rubiya.kr/chall/succubus_37568a99f12e6bd2f097e8038f74d768.php https://los.rubiya.kr/chall/succubus_37568a99f12e6bd2f097e8038f74d768.php los.rubiya.kr 아이디와 패스워드를 입력을 받고 있으며, (')를 사용하면 안 된다. 정답) ?id=\&pw=OR 1=1;%00 id에 주석처리를 해서 pw의 첫번째 ' 까지 문자열 형태로 만든다. id='\' and pw='OR 1=1;%00 그리고 참이 되는 조건과 뒤의 '를 무시하기 위해 주석처리를 해주면 해결 2021. 12. 8.
Lord of SQLinjection - assassin https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php los.rubiya.kr 패스워드를 입력을 받는데 '를 금지하고 있어서 다른 쿼리문을 넣는 게 힘들다. 문제에서 실행되는 쿼리문을 잘 살펴보면 pw가 =가 아닌 like로 일치하는 조건을 구하고 있다. LIKE는 =와 다르게 특정 문자가 포함이 되어있어도 조건을 참으로 만들 수가 있다. 예를 들어 A로 시작하는 문자를 찾고 싶다면 A% A로 끝나는 문자를 찾고 싶다면 %A A가 포함하는 문자를 찾고 싶다면 %A% 이런 식으로 말이다. 또한 _를.. 2021. 12. 8.
Lord of SQLinjection - giant https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php https://los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php los.rubiya.kr shit이라는 인자를 입력받아서 쿼리문을 실행시키는 것이 목적 쿼리문은 select 1234 from{$_GET[shit]}prob_giant where 1 이렇게 구성되어있으며, 쿼리를 정상 동작을 시키기 위해서는 from 뒤에 공백을 넣어야 한다. 공백을 넘겨주는게 쉽지만은 않다. URL 주소에 스페이스를 넣어도 전달이 되지 않는다. 그래서 공백을 대신할 다른 것을 넣어줬다. 바로 "%0b" 요것을 참고: https://jan.. 2021. 12. 8.
웹 해킹 - 크롬 스파이웨어 확장 프로그램 , Bad Extension 크롬 확장자를 이용해 브라우저 전용 스파이웨어를 만들어보았습니다. 우선 대상의 컴퓨터에 설치를 하는 건 상상에 맡기고, 확장 프로그램을 설치하게 되면 별 다른 이상 증상은 없습니다. 확장 프로그램 아이콘을 클릭해도 별 다른 기능은 없습니다. 하지만 만약 유저가 다른 페이지로 이동을 할 경우가 생기면 공격자의 PC에는 유저가 돌아다닌 페이지의 html 파일과 스크린샷 파일을 다운로드 받게 됩니다. 원리: 공격자가 파이썬 Flask로 CDN(콘텐츠 전송 네트워크) 서버를 열게 됩니다. 이 악성 확장 프로그램은 페이지를 이동할 때마다 공격자에게 자바스크립트 콘텐츠 파일을 요구를 하게 되고, 공격자 서버는 콘텐츠를 제공을 하게 됩니다. 그 제공받는 자바스크립트 파일에는 데이터를 전송하는 ajax 스크립트와 문서.. 2021. 12. 8.
파이썬 - base64를 이미지 파일로 저장하기 import base64 imgdata = base64.b64decode(imgstring) filename = 'some_image.jpg' # I assume you have a way of picking unique filenames with open(filename, 'wb') as f: f.write(imgdata) # f gets closed when you exit the with statement # Now save the value of filename to your database 출처: https://stackoverflow.com/questions/16214190/how-to-convert-base64-string-to-image/16214280 How to convert base6.. 2021. 12. 8.
자바스크립트 - canvas base64 데이터 추출 var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // here is the most important part because if you dont replace you will get a DOM 18 exception. 출처: https://stackoverflow.com/questions/10673122/how-to-save-canvas-as-an-image-with-canvas-todataurl How To Save Canvas As An Image With canvas.toDataURL()? I'm currently building a HTML5 web app/Phonegap native app.. 2021. 12. 8.
파이썬 - 여러개의 문자열 변경하기 import re txt = "Hi, my phone number is 089992654231. I am 34 years old. I live in 221B Baker Street. I have 1,000,000 in my bank account." def processString3(txt): txt = re.sub('[0-9]', 'X', txt) print(txt) processString3(txt) 출처: https://www.delftstack.com/ko/howto/python/python-replace-multiple-characters/ Python에서 문자열의 여러 문자를 바꾸는 방법 이 기사는 Python에서 문자열의 여러 문자를 바꾸는 방법을 보여줍니다. www.delftstack.com 2021. 12. 8.
728x90