标签归档:owasp

Asp词法分析C#版

代码提取自OWASP SWAAT项目,会对asp标记(<%%>)内的代码进行词法分析,主要针对中文解析部分做了补充,暂时只支持utf-8中文的解析,如果非utf-8中文编码可能会导致乱码。

至于这个东东能做干嘛,爱干嘛干嘛。

代码解析效果如下:

源码:

  1. <% 
  2. if request("keywords")<>"" then 
  3.     response.write str(clng(request("keywords")))&"中文" 
  4. end If 
  5. Function str(str) 
  6.     str=str 
  7. End Function  
  8. %> 

解析后的输出:

  1. Token #Label: if 
  2. Token #Label: request 
  3. Token #Delim: ( 
  4. Token #String: keywords 
  5. Token #Delim: ) 
  6. Token #Operator: < 
  7. Token #Operator: > 
  8. Token #String:  
  9. Token #Label: then 
  10. Token #Label: response.write 
  11. Token #Label: str 
  12. Token #Delim: ( 
  13. Token #Label: clng 
  14. Token #Delim: ( 
  15. Token #Label: request 
  16. Token #Delim: ( 
  17. Token #String: keywords 
  18. Token #Delim: ) 
  19. Token #Delim: ) 
  20. Token #Delim: ) 
  21. Token #Operator: & 
  22. Token #String: 中文 
  23. Token #Label: end 
  24. Token #Keyword: If 
  25. Token #Label: Function 
  26. Token #Label: str 
  27. Token #Delim: ( 
  28. Token #Label: str 
  29. Token #Delim: ) 
  30. Token #Label: str 
  31. Token #Operator: = 
  32. Token #Label: str 
  33. Token #Keyword: End 
  34. Token #Label: Function 

有些解析还不是太准确,比如function,应该是keyword的,这里被解析成了label。

代码如下:

asp_lex.rar