분류 전체보기

Programming/C#

ControlTemplate & DataTemplate

개념 Templates: Templates in WPF are used to define the structure and appearance of controls. They provide a way to customize the look and feel of a control without changing its functionality. There are two main types of templates in WPF: a. ControlTemplate: A ControlTemplate allows you to redefine the entire visual appearance of a control, such as a Button, ListBox, or ComboBox. It is a blueprint..

카테고리 없음

Flutter 환경 구축하기

Window 환경에서의 Flutter를 설치해보자. 1. Windows install | Flutter 에서 Stable 버전의 Zip 파일을 다운로드한다. 2. 환경변수에서 Path 변수에 Flutter를 설치한 경로를 추가한다. 3. Android sdk 과 emulator를 설치하기 위해 android studio를 설치한다. 4. flutter doctor 명령으로 환경구축이 잘되었는지 확인한다. Flutter Doctor 환경설정 검사하기 터미널에서 > flutter doctor 를 입력하고 출력되는 에러 메시지를 확인한다. Window Version 에러 해결하기 명령에서 아래를 순서대로 입력한다. flutter channel flutter channel master flutter channe..

카테고리 없음

ASP.Net WebService Base64인코딩

ASP.Net 에서의 웹서비스 get / post에 대한 예제 using System; using System.Diagnostics; using System.Web; public class ProcessHandler : IHttpHandler { public void ProcessRequest (HttpContext context) { // Get the method used to call the page (GET or POST) string method = context.Request.HttpMethod; if (method == "GET") { // Get the parameters from the query string string param = context.Request.QueryString["..

Programming/Database

[MySQL] 서버 계정 생성 및 권한 부여하기

일반 사용자를 생성하고 특정 권한만 부여하기 CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'newuser'@'localhost'; Admin 계정을 생성하여 모든 권한을 부여하기 CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'admin'@'localhost';

Programming/Web

[Web] Prepared Statement

1. 개요 Server 로 쿼리 요청을 통해서 Database 의 접근을 하는 경우 Sql Injection 이 발생할 수 있는 위험성이 있다. 이를 해결하는 방법으로 Prepared Statement를 구성하고 입력받은 value 값에 injection 이 들어가서 sql 쿼리의 명령에서 원치 않는 동작이 발생되는 것을 방지한다. 2. Python 구현 Flask 서버를 사용하여 PD를 구현하였다. 우선 get 쿼리를 통해 id와 pw 를 얻고 이를 PD를 적용하여 sql query 를 수행하도록한다. #Prepared Statement test @app.route('/psapi', methods=['GET']) def handlePSApi(): param_id = request.args.get('id..

Programming/Web

[Web Secure] Lord of Sql Injection #11

11번 문제 golem 입니다. 문제의 핵심은 orge 문제처럼 admin의 pw를 찾는 것인데 먼저 guest의 query 를 무시하게 하고 admin 의 레코드를 얻어야 합니다. 그런데 이번엔 or, and, substr, '=' 문자열을 못쓰는군요.. 대체 기능으로 or는 '||'으로, and 는 %26%26, '=' 는 like 로 쿼리문을 변경하면 됩니다. 아래와 같이 입력하면 우선 admin 레코드는 얻는군요. 다음으로 파이썬 코드를 이용해서 최종적으로 암호를 얻어내서 통과합니다.

Programming/Web

[Web Secure] Lord of Sql Injection #10

문제 10번 skeleton 입니다 pw 쿼리를 받지만 뒤에 있는 false 값을 주는 1=0 구문이 있습니다. pw 의 쿼리 값으로 빈 값을 보내고 이전에 했던 ||id=admin 과 comment 구문을 넣으면 뒤의 조건을 없앨 수 있습니다.

Programming/Web

[Web Secure] Lord of Sql Injection #9

문제 9번 vampire 입니다. 이런, 8번에서 파악한 문제를 해결해버렸네요.. 입력된 value를 lower 로 변환후에 admin 과 비교를 하고 있습니다. 하지만, replace 구문을 역이용하면 되겠네요. 입력을 admadminin 을 하면 중간에 있는 admin 값만 없어지고 앞뒤에 있는 admin 이 남게됩니다.

Programming/Web

[Web Secure] Lord of Sql Injection #8

문제 8번 troll 입니다 먼저 해석을 해보면 첫번째로 쿼트를 사용하지 못하고 admin 문자열을 넣지 않고서 admin 레코드를 얻어야 하는 문제입니다. 여기에서는 조건이 admin 을 넣으면 안되는 것이므로 Admin 을 입력해보면.. 그냥 풀리네요.. 이유는 뭘까요?? php 에서의 문자열 비교는 기본적으로 case-insensitive 입니다. 따라서 문자열의 대소문자를 구분하지 않고 같으면 true 조건으로 해결되는데 이를 해결하기 위해서는 '==' 대신에 '===' 를 사용해야 합니다.

Programming/Web

[Web Secure] Lord of Sql Injection #7

7번 orge 문제입니다. 이건 4번 문제 orc 와 같은 문제이지만 조건이 or 와 and 문자열을 넣을 수 없습니다. 그렇기 때문에 || 연산자처럼 and 대신에 '&&' 입력하였지만 get request 에서는 쿼리의 구분자로 사용되기 때문에 제대로 전달이 되지 않습니다. 예로 아래와 같이 입력하고 응답쿼리를 보면 && 이후는 다른 key의 쿼리요청으로 인식해서 짤립니다. https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=%27||length(pw)=%278%27&&id=%27admin 해결하기 위해서는 이것또한 && 대신에 %26%26 hex 코드로 전달을 하면 됩니다. 매크로를 통해 얻은 암호로 최종적으로 풀리네요.

RichardBang
'분류 전체보기' 카테고리의 글 목록 (4 Page)