欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

浅谈Asp代码审计之某cms通读实例(二)

来源:本站整理 作者:佚名 时间:2019-08-06 TAG: 我要投稿


 
0x1 前言(Preface)
阅读此文之前,如果不会搭建相关审计环境,建议从我第一篇文章开始看起浅谈Mac上手 Asp and Asp.net 代码审计(一),关于asp的审计应该是很久以前的东西,但是经常在内网渗透或者红队中遇到asp的老系统,同时也为了扩展自己的知识面,在web方向打下基础。此篇文章可能比较小众,欢迎各位师傅拍砖指点。(Ps.此教程还是从小白的角度出发,因为作者本身就是小白)
 
0x2 审计对象(Audit Object)

这个系统是不是感觉有点怀旧的感觉,这就是新云网站管理系统V3.0.0,源码可以在网上搜索下载到,
 
0x3 asp代码审计一些特点(Feature)
asp程序写的真的很原始,读起来逻辑很连贯,而且基本都是单入口的,包含文件内容一般是一些全局配置的内容,所以通读asp程序,就是逐个文件去读,当然有些小技巧,提高阅读速度,快速定位有弱点的位置,下面就是分享下自己的学习过程啦。
小白是不是感觉自己不懂vbscript就不能上手asp代码审计了呢? 那么可以先补充下基础知识再继续学习,如下是vbscript的基础语法
asp程序一般支持VBSCRIPT 和 jscript ,但是常见的都是vbscript语法,所以我们只说下vbscript的基础语法。
asp关键词基本都是大驼峰命名,即首字母大写,但是vbscript语法是不区分大小写
asp文件VBscript标识开头:
%@ LANGUAGE = VBScript CodePage = 936%>
变量声明:
Dim html
数组:
Dim array(2) ‘跟我们平时学的大小不太一样
Dim array(2,3) ‘3行4列多维数组
单行注释:
'
字符串链接符:
&
字符串:
必须用双引号括起来
常用输出:
Response.Write("Hello World!")
for循环语句:
for i=0 to 3:
    ......
next
Do
....
Loop
For Each .... Next ...
流程控制语句:
If ... Then ... '只执行一条语句
If... Then ... End If '可以执行多条语句
If ... Then ... Else ...
If ... Then ... ElseIf ...
Select ... Case
过程:
' --  Sub过程
Sub Name(str1, str2)
    ........
End Sub
' -- 调用
1.Call Name(str1, str2)
2. Name ' --无参调用
' --  Function
Function Name(number)
.........
End Function
' -- Function 过程
Function GetName()
Response.Write "test"
End Function
GetName
' --- 区别
' -- Sub没有返回值,而Fubnction有返回值。
' -- Sub不能放在表达式中,而Function可以。
类的使用:
Class ClassName
Type  VariableName
Private Sub Class_Initialize() '构造过程
Reponse.Write("class initialize starting")
End Sub
Private Sub Class_Terminate() '析构过程
Response.Write("class end")
End Class
下面是我在熟悉这些语法的时候本地练习的代码:
"array[0]"
array(1) = "array[1]"
array(2) = "array[2]"
html="123" 'value  variable
Response.Write("123" & html & "") 'output result
for i=0 to 2
    Response.Write(i)
    Response.Write(array(i) & "")
next
Dim Num1,Num2
Num1 = 10
Num2 = 20
If Num1 "Num1 )
Response.Write("")
If Num1 "Num1 )
    Response.Write("Num1 )
End If
Response.Write("")
If Num2 "Num1 > Num2 ! Right!")
Else
    Response.Write("Num1 )
End If
Response.Write("")
Response.Write("Select Case Example")
Response.Write("")
Dim Week
Week = WeekDay(date)
Select Case Week
Case 1
    Response.Write("1")
Case 2
    Response.Write("2")
Case 3
    Response.Write("3")
Case 4
    Response.Write("4")
Case 5
    Response.Write("5")
Case 6
    Response.Write("6")
Case 7
    Response.Write("7") 
End Select
Response.Write("")
Response.Write("For Each  Example")
Dim Num(10)
For i = 0 To 5
    Num(i) = i
Next
Dim j
For Each j In Num
    Response.Write(j & "")
Next
Response.Write(" proccess and function Example" & "")
Sub Res(content)
    Response.Write("Sub test " & content & "")
End Sub
Sub test() ' no parameter function
    Response.Write(" i am test ")
End Sub
Call Res("i am content")
Res "123"
test ' --no parameter call
Function GetName()
Response.Write "I am GetName Function"
End Function
GetName
Class MyClass
    Private TestProperty

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载