SQL Server 2000에서 SQL 주입

다른 팁

SQL Server 2000에 기능이있는 동정인이 있습니까? 스크립트 태그의 내용은 지속적으로 변경됩니다.

같은 것 :

업데이트 테이블
set field = replace (필드, 'u003C/script> ', 교체 (필드,' u003Cscript>',''))
여기서 table.pk in ( '%script>'와 같은 필드에서 삽입 된 PK를 선택하십시오)

?

4 월부터 진행된 대규모 공격이 있으며, 그것이 당신을 데려 오는 것이라면 데이터베이스의 모든 테이블에 대한 트리거를 추가해야합니다. 이 스크립트는 원래의 공격 코드를 수정하여 한 번의 SWOOP로 모든 것을 정리합니다. <script DB의 어느 곳에서나 유효한 텍스트가 아닙니다.

DECLARE @T varchar(255),@C varchar(255) 
DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) 
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C 
WHILE(@@FETCH_STATUS=0) BEGIN 
exec('update ['+@T+'] set ['+@C+']=LEFT(['+@C+'], CHARINDEX(''<script'', ['+@C+'])-1)
WHERE CHARINDEX(''<script'', ['+@C+']) >0')
FETCH NEXT FROM Table_Cursor INTO @T,@C 
END 
CLOSE Table_Cursor 
DEALLOCATE Table_Cursor

또한, 나는 당신 이이 공격을 제거함으로써 운이 좋을 것이라고 들었습니다. SELECT 권한 응용 프로그램 사용자의 경우 ~에 syscolumns 또는 sysobjects, 그것이 당신을위한 옵션이라면. 다음 공격을 준비하기 위해 여전히 취약점을 수정해야합니다.

데이터가 수정되면 주입이 데이터베이스에 들어가는 방식을 찾아 수정해야합니다. 나는 당신이 아마 동적 SQL을 사용하고 있다고 가정합니다. 이 기사는 주사가 문제가되지 않도록 수정하는 데 도움이됩니다.http://www.sommarskog.se/dynamic_sql.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top