213, 1/11 회원가입  로그인  
   europa8340
   sql injection 방어 코드

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_Web&no=275 [복사]



For i=1 To Len(AsciiStr)
  Str=AscW(Mid(AsciiStr,i,1))
  If Str<0 Then
   Str=Str+65536
  End If
  UnicodeStr=UnicodeStr&"&#"&Str&";"
Next

AsciiToUnicode=UnicodeStr
End Function

injection_i=0

For each item in Request.QueryString
        for injection_i = 1 to Request.QueryString(item).Count

        strInjection        =         strInjection & Request.QueryString(item)(injection_i)
        tmpstring                =         replace(Request.QueryString(item)(injection_i)," ","")
    if  instr(UCASE(tmpstring),"'OR")        > 0 or instr(UCASE(tmpstring),"'AND")        > 0 then
                %>
                <script>
                        alert("SQL Injection hacking[page back]");
                        history.back();
                </script>
                <%
                response.end
        end if

        strInjection        =         strInjection & item
        next
next

injection_i=0

For each item in Request.Form
        for injection_i = 1 to Request.Form(item).Count
        strInjection        =        strInjection & Request.form(item)(injection_i)

        tmpstring                =         replace(Request.form(item)(injection_i)," ","")
    if  instr(UCASE(tmpstring),"'OR")        > 0 or instr(UCASE(tmpstring),"'AND")        > 0 then
                %>
                <script>
                        alert("SQL Injection hacking[page back]");
                        history.back();
                </script>
                <%
                response.end
        end if
    strInjection        =        strInjection & item
        next
next



if instr(UCASE(strInjection),"CREATE")        > 0 or instr(UCASE(strInjection),"DELETE")>0 or instr(UCASE(strInjection),"DROP")>0 or instr(UCASE(strInjection),"UPDATE")>0 or instr(UCASE(strInjection),"SELECT")>0 or instr(UCASE(strInjection),"UNION")>0 OR  instr(UCASE(strInjection),"EXEC")>0  OR instr(UCASE(strInjection),"INSERT")>0 OR instr(UCASE(strInjection),"DECLARE")>0 or instr(UCASE(strInjection)," OR")>0 OR  instr(UCASE(strInjection)," AND")>0 OR instr(UCASE(strInjection),"--")>0 OR instr(UCASE(strInjection),"'")>0 OR instr(UCASE(strInjection),"DBCC")>0 OR instr(UCASE(strInjection),"ALTER")>0 OR instr(UCASE(strInjection),"BACKUP")>0 OR instr(UCASE(strInjection),"SET")>0 OR instr(UCASE(strInjection),"CLOSE")>0 OR instr(UCASE(strInjection),"RETURN")>0 OR instr(UCASE(strInjection),"EXISTS")>0 OR instr(UCASE(strInjection),"TRUNCATE") > 0 then


%>
<script>
        alert("허용되지 않는 글자가 포함되어 있습니다.SQL");
        history.back();
</script>
<%

response.end
end if

if     instr(UCASE(strInjection),"<SCRIPT")>0         or instr(UCASE(strInjection),"</SCRIPT")>0          or instr(UCASE(strInjection),"<HTML")>0         or instr(UCASE(strInjection),"</HTML")>0         or instr(UCASE(strInjection),"<META")>0         or instr(UCASE(strInjection),"<LINK")>0         or instr(UCASE(strInjection),"<HEAD")>0         or instr(UCASE(strInjection),"</HEAD")>0         or instr(UCASE(strInjection),"<BODY")>0         or instr(UCASE(strInjection),"</BODY")>0         or instr(UCASE(strInjection),"<FORM")>0         or instr(UCASE(strInjection),"</FORM")>0         or instr(UCASE(strInjection),"<STYLE")>0         or instr(UCASE(strInjection),"</STYLE")>0         or instr(UCASE(strInjection),"COOKIE")>0        or instr(UCASE(strInjection),"<DOCUMENT.")>0          or instr(UCASE(strInjection),"SCRIPT:")>0 or instr(UCASE(strInjection),"EMBED")>0 or instr(UCASE(strInjection),"<")>0 or instr(UCASE(strInjection),">")>0   or instr(UCASE(strInjection),"HTTP:")>0 or instr(UCASE(AsciiToUnicode(strInjection)), AsciiToUnicode("<"))>0 or instr(UCASE(AsciiToUnicode(strInjection)),AsciiToUnicode(">"))>0 or instr(UCASE(strInjection), "&#")>0        Then
%>
<script>
        alert("스크립트나 HTML태그는 사용하실 수 없습니다.");
        history.back();
</script>
<%

response.end
end if

%>
<%
        '특수문자 변경하기
        Function Checkot(CheckValue)
                CheckValue = replace(CheckValue, "<", "<")
                CheckValue = replace(CheckValue, ">", ">")        
                CheckValue = replace(CheckValue, "&", "&" )
                Checkot = CheckValue
        End Function

        Function Checkit(CheckValue)
                CheckValue = replace(CheckValue, "&" , "&")
                CheckValue = replace(CheckValue, "<", "<")
                CheckValue = replace(CheckValue, ">", ">")
                CheckValue = replace(CheckValue, "'", "''")
                Checkit = CheckValue
        End Function

        Function numdel(var)
                If InStr(var,".") Then
                        a = Split(var,".")(0)
                        If Len(Left(Split(var,".")(1),2)) > 1 Then
                                b = Left(Split(var,".")(1),2)
                        ElseIf Len(Left(Split(var,".")(1),2)) > 0 Then
                                b = Left(Split(var,".")(1),2) & "0"
                        Else
                                b = "00"
                        End If
                        var = a & "." & b
                Else
                        var = var & ".00"
                End If

                numdel = var
        End Function
%>

테스트 사이트 각 폼에서 불러오는 sql injection 방어 입니다.
부족한게 있을까요 ?

  Hit : 2339     Date : 2019/10/04 07:19



    
ss4747 안녕하세요!!

모의해킹 가능자 모집 중인 해외업체입니다

업무의 진행방식은 프리랜서 형식으로 저희가 제공해드린

사이트 모의해킹 성공시 건당 으로 지급해드립니다

자세한안내사항및 기타문의는 텔래그램 ss4747 여기로 연락주시면 상세하게 알려드리겠습니다
2019/10/08  
cd80 or 대신 || 만 써도 우회 되는거같은디.. sqli는 prepared statement로 막으시는게 좋습니다 이런식의 단순블랙리스트는 왠만하면 무조건 뚫린다고 생각하셔야해요 2019/10/11  
213   웹해킹 관련하여 질문드립니다[5]     solo20
05/21 1881
212   웹해킹 입문 책추천해주세요     kjwp1
02/24 1996
211   이미지안에 리다이렉트 소스(악용목적X)[2]     tjdgus1515
12/06 4116
210   아파치 php mysql 연동관련 질문입니다.[3]     커세어
10/19 2991
  sql injection 방어 코드[2]     europa8340
10/04 2338
208   웹 sqlmap 중에[1]     europa8340
07/26 1812
207   웹 해 킹 가능하는[1]     custom890
12/31 2484
206   웹 해킹 자신있으신 분들 꼭 봐주세요     bird999
12/05 2531
205   웹 해킹 하는데 웹 개발도 할 줄 알아야 하나요?[1]     unmask
10/25 2395
204   해킹맛보기(서적) 아파치프로그램 질문입니다[1]     커세어
09/29 2196
203   웹해킹 입문할려고합니다. 조언및과외해주실스승님 구합니더[3]     edustars
09/26 2439
202   417 error     wiwiwi79
08/15 2064
201   홈페이지 디도스 원리?[1]     tbxmaos
02/12 2231
200   아파치 설정중 오류[2]     eunjong147
02/06 7483
199   칼리리눅스 dvwa 설치과정중 오류[2]     wnsdud5534
01/23 2873
198   웹 해킹 질문입니다.     dsgoidsog
11/26 2270
197   XSS <> 치환 우회가 가능한가요?[2]     drrobot333
11/19 3079
196   PHP에서 이메일 전송할때 가로챌 수 있나요?[9]     drrobot333
11/16 2168
195   웹해킹 질문[1]     ericseo16
10/14 2408
194   웹해킹에 필요한 언어[3]     yunpung1234
08/17 3236
1 [2][3][4][5][6][7][8][9][10]..[11]

Copyright 1999-2023 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org & Wowhacker.com