권장 : ASP 최적화는 데이터 바인딩을 사용하여 고효율 동적 웹 페이지를 달성합니다. 데이터 바인딩은 새로운 개념이 아니며 IE 4.0은 이미이를 풍부한 지원을 제공했습니다. 그러나 데이터 바인딩은 가치가있는 것처럼 가치가 없으며 많은 개발자가 서버 측 스크립팅 방법을 더 기꺼이 사용하려는 것 같습니다. 그러나 실제로
크래킹 목표 : 암호화 된 ASP 트로이 목마 로그인 비밀번호 크래킹. 트로이 목마에는 버전 설명이 없기 때문에 트로이 목마가 무엇인지 모르겠습니다.
크래킹 아이디어 : 두 가지 유형 : 암호 텍스트를 암호화 된 비밀번호로 교체하고 암호 텍스트 및 암호화 알고리즘을 사용하여 암호를 역전시킵니다.
전자는 전혀 균열이 아닙니다. ASP 소스 코드를 얻을 수 없다면 비밀번호를 크래킹 할 가능성이 없다고 말할 수 있습니다. 중국의 한 친구는 웹 권한을 얻었지만 홈페이지를 수정할 수는 없다고 말했다. 그는 ASP 트로이 목마가 있다는 것을 알았지 만 암호는 암호화되었습니다. 좋아, 넌센스가 너무 많아서 준비하십시오.이 설명은 꽤 길어질 것입니다.
ASP Trojan 로그인 비밀번호 확인의 주요 코드는 다음과 같습니다.
if epass (trim (request.form (password)) = q_ux624q p 응답 .cookies (비밀번호) = 8811748 ... |
EPASS 함수는 입력 암호를 암호화하는 데 사용 된 다음 얻은 암호 텍스트를 원래 암호 텍스트와 비교하는 것이 분명합니다. 약간의 기본 프로그래밍, 특히 VB가 있다면 EPAS의 암호화 알고리즘이 한눈에 분명합니다. 그렇지 않다면 중요하지 않습니다. 나는 당신이 내 설명 후에 빨리 이해할 것이라고 믿습니다. 함수에서 비밀번호를 저장하는 변수는 패스입니다. Pass & ZXCVBNM,.// ZXCVBNM과 통과하는 내용을 연결하여 새 문자열을 얻으려면. 왼쪽 (Pass & zxcvbnm,./, 10)은 상위 10 자리를 차지합니다. strreverse 함수는 결과 10 비트 문자열 순서를 뒤집습니다. Len (Pass)은 비밀번호의 길이를 가져옵니다. 아래는 루프입니다. 얻어진 문자열에서 각 비트의 ASCII 코드-파스 워드 길이는 둥글게되며 (문자 위치 *1.1), 결과 값은 문자로 변환되어 다시 연결됩니다. 마지막으로, 획득 된 문자열에 '가있는 모든 문자는 b로 대체되어 암호문이 생성됩니다. 암호화 알고리즘을 추출하고 원래 암호 텍스트를 자체 암호 텍스트로 바꾸면 해당 비밀번호도 비밀번호가됩니다. 그러나 나는 이것이 진짜 균열이 아니라고 말했다.
우리가 사랑을 입력하면 암호화 과정은 다음과 같습니다.
| 사랑 lovezxcvbnm,./'연결 lovezxcvbn '상위 10 위를 차지하십시오 nbvcxzevol '순서 반전 N 110 (ASCII) -4 (숫자 번호) int (1 (위치)*1.1) = 107 107의 ASCII 코드는 k 등의 마지막 암호 텍스트입니다. k`Ucy hzts |
암호 텍스트 및 암호화 알고리즘을 통해 암호를 반전시켜 알고리즘의 마지막 단계에서 밀어 넣을 수 있습니다. 마지막 단계는 모두 B로 교체하는 것입니다. B를 대체 해야하는 경우 대답은 아니오입니다. 마지막 암호 텍스트를 얻을 수있는 한 비밀번호가 다를 수 있습니다. BS가 10 명이면 원래 비밀번호의 수는 10의 전력으로 2입니다. 원래 비밀번호가 하나만 있지만 1024 개의 암호는 모두 정확합니다. 완벽하게 깨기를 원한다면 모든 조합을 직접 쓸 수 있습니다. 이 단계는 무시할 수 있습니다. 위의 알고리즘은 매우 명확합니다.
| chr (asc (mid (temppass, j, 1)) -Templen int (j*1.1)) |
우리는 단순히 단순히 - 그리고 잠시 동안 변경하면됩니다.
| chr (ASC (MID (Temppass, J, 1)) Templen-Int (J*1.1)))) |
그러나 또 다른 문제가 있습니다. 우리는 비밀번호의 길이를 미리 알지 못하므로 중요하지 않습니다. 다행히 비밀번호는 1-10 자리 사이이며 너무 길지 않습니다. 그런 다음 1 ~ 10 루프를 사용하여 가능한 모든 암호를 찾은 다음 strreverse 기능을 사용하여 순서를 반전시킬 수 있습니다. 그렇다면 결국 어떤 암호를 얻는 지 어떻게 결정합니까? ZXVBNM의 처음 몇 자리가 있는지 확인할 수 있습니다. 그러면 이것이 실제 비밀번호입니다. 그런 다음 암호가 10 비트 인 경우 뒤에 연결이 없기 때문에 영원히 맞습니다. 그래서 우리는 두 가지 답변을 얻을 수 있습니다.
다음은 내가 쓴 암호 해독 함수입니다.
함수 ccode (코드) templen1 = 1 ~ 10의 경우 mmcode = j = 1 ~ 10의 경우 mmcode = mmcode chr (ASC (MID (MID (Code, J, 1)) Templen1-Int (j*1.1)) 다음 ccode = strreverse (mmcode) 응답. 비밀번호 및 templen1 & : & ccode & Mid (ccode, templen1 1,10-templen1) = left (zxcvbnm,./, 10-templen1) 및 templen1 <> 10 인 경우 결과 = 왼쪽 (ccode, templen1) 다음 응답. 마지막 비밀번호를 작성하십시오 : & 결과 엔드 기능 |
자, 알고리즘은 짧은 시간 안에 완전히 마스터되지 않을 수 있습니다. 이는 정상입니다. 따라서 지침과 암호화 및 해독 된 ASP 소스 코드를 압축 패키지에 첨부하겠습니다. 다시 가져 와서 조심스럽게 공부하십시오. 마찬가지로, 비밀번호 10은 영원히 정확합니다. 그런 다음 ASP에서 원래 암호 텍스트를 가져 와서 결과가 무엇인지 살펴 보겠습니다.
공유 : ASP에서 응답 속성을 사용합니다 ASP를 사용하여 특정 장치의 웹 페이지를 만들 때 그러한 문제가 발생했습니다. 이 장치의 이전 MIS 시스템에서 일부 Word 파일은 데이터베이스에 바이트 스트림 형태로 저장되었습니다. 이제 사용자는 ASP를 사용하여 데이터베이스 에서이 Word 파일 데이터를 가져와 웹 페이지에 표시하도록 요청했습니다.