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

웹 해킹26

DreamHack - blind-command 풀이 https://dreamhack.io/wargame/challenges/73 blind-command Read the flag file XD Reference Server-side Basic Server-side Advanced - Command Injection dreamhack.io 해결 조건 사용자로부터 GET Method를 요청받아야 함 cmd라는 GET 파라미터 값을 전달받아야 함 request.method가 GET이 아니어야 함 해결 조건 1번과 3번이 좀 모순이 된다. 코드의 7번째 라인 @app.route('/' , methods=['GET'])에 인해 GET 외에 다른 Method를 전송하면 405(METHOD NOT ALLOWED) 에러가 발생한다. 하지만 14번째 라인 if문에 의해 .. 2023. 9. 7.
웹 해킹 - 리버스 쉘 명령어 모음 사이트(revshells.com) https://www.revshells.com/ Online - Reverse Shell Generator Online Reverse Shell generator with Local Storage functionality, URI & Base64 Encoding, MSFVenom Generator, and Raw Mode. Great for CTFs. www.revshells.com 2023. 3. 16.
웹 해킹 - 브라우저 핑거프린트 확인 사이트 https://browserleaks.com/ BrowserLeaks - Web Browser Fingerprinting - Browsing Privacy BrowserLeaks.com is all about browsing privacy and web browser fingerprinting. Here you will find a gallery of web browser security testing tools that will show you what kind of personal identity data can be leaked while browsing the Internet. browserleaks.com IP 주소부터 시작해서 FLash Player, Silverlight까지 각종 브라우저의 .. 2022. 8. 27.
웹 해킹 - 클라이언트의 핑거프린트 확인하기(ClientJS) const client = new ClientJS(); client.getBrowserData(); client.getFingerprint(); client.getCustomFingerprint(...); client.getUserAgent(); client.getUserAgentLowerCase(); client.getBrowser(); client.getBrowserVersion(); client.getBrowserMajorVersion(); client.isIE(); client.isChrome(); client.isFirefox(); client.isSafari(); client.isOpera(); client.getEngine(); client.getEngineVersion(); client.g.. 2022. 8. 15.
웹 해킹 - sqlmap sqlmap은 파이썬으로 작성된 오픈 소스 SQL Injection 자동화 도구이다. MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access 등 다양한 DBMS들을 지원하고 boolean-based blind, time-based blind, error-based, UNION query-based, stacked queries and out-of-band 공격 방식들을 지원한다고 한다. 이렇게나 다양한 옵션을 다 자동적으로 해주기 때문에 쓰지 않을 이유가 없다. 더 자세한 내용은 직접 공식 사이트에서 확인 가능 https://sqlmap.org/ sqlmap: automatic SQL injection and database takeover .. 2022. 7. 24.
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.
Lord of SQLinjection - bugbear 이번에는 무려 공백과 OR AND를 제외하고, LIKE도 필터링이 된다. 공백은 %0a로 치환하고, LIKE는 IN으로 대체하면 된다. 그리고 인젝션을 하던 중 ORD 함수를 사용하려고 하자 OR 키워드가 포함이 되어있어서 사용이 불가능했다. 그래서 하는 수 없이 ORD를 HEX로 대신 사용하고 여기에 CONV 함수를 더해서 16진수를 10진수로 변경해 주었다. 그것만 수정하면 이전의 자동화 소스랑 비슷하다. import requests parameter = None cookie = {'PHPSESSID':'자신의 쿠키 값을 입력'} result = None solve = "" for i in range(1, 8+1): for ascii in range(48, 112+1): print(ascii) par.. 2021. 12. 7.
Lord of SQLinjection - darkknight 이전까지는 문자열 형태의 id 혹은 pw를 값을 넘겨주었다면, 이번에는 숫자 형태의 no를 넘겨주어야 한다. 즉 no은 '로 둘러싸여서 쿼리를 실행하는 것이 아니기 때문에 굳이 '를 사용해 우회를 할 필요가 없다. 수고를 좀 더 덜어준 셈이다. 마침 필터링을 하는 부분도 '를 금지하고 있다. 그렇기 때문에 문자를 이용해 Blind 인젝션을 시도하는 것은 불가능하다. (문자를 주기 위해서는 '를 포함을 해야 하기 때문에) 그리고 또 제외를 하는 함수들도 있는데 각각 substr과 ascii가 있다. 이는 다 다른 함수로 대체가 가능함. substr -> mid ascii -> ord =도 LIKE로 치환하면 된다. 아래는 파이썬 자동화 도구이다. import requests parameter = None .. 2021. 12. 7.
Lord of SQLinjection - skeleton 이번에는 뭐든 입력해도(심지어 일치하는 패스워드를 넣어도) 쿼리문 맨 뒤에 and 1=0 때문에 무조건 실패가 뜨게 된다. 이런 의미 없는 쿼리문을 보고 딱 봐도 주석을 이용한 문제라는 것이 떠올랐다. (뒤에 있는 and 1=0을 무력화 시켜주기 위해서) 정말 주석 #를 넣어서 문제를 통과하는 것도 가능했다. 하지만 ;%00라는 방법도 존재 했다. 얘는 세미콜론(;)과 NULL(%00)을 이용한 주석처리이다. 2021. 12. 7.
Lord of SQLinjection - vampire 이번에는 troll 문제와 다르게 모든 대문자를 소문자로 변경을 시키며, str_replace함수를 이용해 admin 키워드를 공백으로 변경시키고 있다. admin 키워드를 공백으로 변경시키고 있다. admin을 ""으로 바꾼다. 그러면 adadminmin을 넣으면 어떻게 될까? adadminmin 중간에 admin 지워지고, admin이 남게 되어 쿼리를 잘 실행할 수 있게 된다. 문자열 변경 함수의 취약점은 이미 꽤 유명하기 때문에 저 함수 보자마자 바로 떠올랐다. 2021. 12. 7.
728x90