java_sec_code
xss
补充和回忆一下一些开发基础
- @RestController
- @RequestMapping(value = "/xss")
- public class Xsstest {
- @ResponseBody
- @GetMapping("/test")
- public String getxss( HttpServletRequest request, HttpServletResponse response,@RequestParam String xss){
- xss = request.getParameter("xss");
- request.setAttribute("xss",xss);
- System.out.println(xss);
- System.out.println(xss);
- request.getRequestDispatcher("src/main/java/web/1.jsp");
- return xss;
- }
- }
复制代码 这里用的是springboot去开发的用的是mvc没用用servlet那一套基础类,这样开发很方便记录一些点吧
- @RequestMapping(value = "/xss") 访问的地址可以在主类上加然后在后面的方法上面加形成多级目录
- @RequestParam String xss 注解参数代表的是在url中获取参数 xss
- @GetMapping("/test")是代表的是只允许get请求去访问还有@PostMapping
- request.setAttribute("xss",xss);把xss里面的值用xss这个变量名来存储
我这里原本是准备用request域中去存储这个值然后做一个跳转达到这个效果的但是不知道为啥没有配置好久采用了另一种的方式就是在本页面不过滤参数直接返回这就是一种简单的反射型xss。
还有一种效果就是放到共享域中后又另外的页面取出内容没有进行过滤也会造成xss漏洞。
补充一下域相关的知识- 1.域对象:一个有作用范围的对象,可以在范围内共享数据。
- 2.request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
复制代码 还有一些审计是在前端的就不做审计了自己又在复习这些web漏洞多摸摸靶场
less-1
这里的xss其实并不完善,过于基础了,第一种是在url插入的一种反射性xss,这种xss存在的危害其实并不大,而且存在的也比较少
用简单易懂的语言来说一下- 为什么会存在反射型xss呢
- 很简单的一个道理,一切可控的输入都是有害的,
复制代码- @RequestMapping("/reflect")
- @ResponseBody
- public static String reflect(String xss) {
- return xss;
- }
复制代码 看着代码简单我们需要简单去理解一下xss隐含在其中的原理
[code]为什么会有这样的情况,这样的情况来自于我们输入的参数,再没有任何过滤的情况下就返回给了客户端这种情况怎么会存在呢,js代码没被过滤,这种情况怎么存在呢1.很简单的例子,当我们访问一个站点,它对我们的参数会跟一个url进行拼接,returun www.example.com?title=#{url}就这样我我们可以进行一个拼接,1<script>alter(1) |