本文主要用于解答正式课中,同学们遇到的一些比较常见的问题,对于常见的问题进行了分析解答,如果有不正确的地方请同学们在下方评论指出或者私聊我~~,小王会根据你的建议去做适当的修改^_^
本文将持续更新,不断补充~~
本文中所有涉及到的工具以及源码放在文末了哈,不必担心工具源码问题~~
学习如逆水行舟,希望能够与君共勉~~~
行文结构 : 根据正式课的课程体系大纲,对每一节中比较常见的问题作解答分析
快速查找 : 在文章的头部目录中,直接点击相关课程大纲内容或相关问题可快速跳转进行查找
脑图制作比较潦草,大佬们轻点喷哈,如果大佬们也有想要分享的内容文字或者脑图或图片,可以联系我呀~
脑图在底部,名为:web安全学习笔记.zip
1,首先访问我们的社区并登陆:https://bbs.zkaq.cn/
2,登陆以后看到页面的右侧,找到 “作业专版” ,然后点击进去:
3,进去之后可以看到,”作业模板” ,这个东西的作用就是教你怎么写作业的,请一定要浏览一遍:
4,点击”提交作业”:
1,首先登陆咱们的社区,然后点击右上角的头像,”个人中心”—>”学习计划” ,然后看到“学习计划及进度表”,这里有你在学习正式课所有的作业清单以及完成情况:
同时再次提醒一下,写作业的时候尽量将你的思路,过程,截图都展现出来哈,越详细越好,也可以稍微注意一下作业的排版,尽量做到简洁大方,可阅读性强。
直接从正式课的第一节课开始,顺序往下学习即可,课程的学习顺序都是咱们的讲师安排好的,由易到难,由简到繁,所以同学只需要一步一个脚印,从上往下顺序学习即可,学习的过程中,希望同学可以养成做笔记的好习惯(好记性不如烂笔头),同时打靶场的同时,别忘了记录下过程和思路哦~~~
我建议的学习方法是:把视频完完整整认认真真看完,再进行实践操作,不推荐一边看一边对着做,这样学很容易卡壳的。
课程中涉及的ppt,课堂笔记,软件安装包我们都有提供,请同学放心。
课件可以在QQ群聊中的群文件中找到,以及辅导员给你的网盘,如果没有,可以找辅导员也就是我拿就行,如果有缺失的课件,也可以来找我哦~~~
关于这个问题,如果同学觉得某个软件不安全,害怕有病毒,可以将软件装在虚拟机里面,如果觉得装在本机也没事,就装在本机,你有完全控制权,你可以自主选择安装在哪里!!!
你看到的肯定是如下界面:
参考大佬的文章:https://bbs.zkaq.cn/t/471.html
设置快捷打开:https://bbs.zkaq.cn/t/2829.html
OK,这个软件我在网上找了很多的破解方法,发现破解方法都比较复杂(也许是我没看到简单的方法),所以我这里建议你安装其他的编辑器软件比如 notepad++ ,sublime_text(推荐) 等,这些编辑器和 EverEdit其实差不多。
notepad++ 官网下载地址:https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.5.4/npp.8.5.4.portable.x64.zip
notepad++ 设置中文教程参考:https://blog.csdn.net/qq_35685189/article/details/116263871
sublime_text 官网下载地址:https://www.sublimetext.com/download_thanks?target=win-x64
sublime_text 设置中文教程参考:https://zhuanlan.zhihu.com/p/102376540
请同学放心,报名了正式课课程,后面你如果还在学习或者复习正式课的课程内容,问辅导员正式课的问题,辅导员在看到后,依然会去给你解答的,如果有时候不是能够及时回复,可能是问问题的学员有点多哈,辅导员在一 一解答,届时希望能够谅解一下哈~ ^_^
OK,请宝子们参考这篇文章:文章内容很乱不知道该怎么排版,看这篇就够了(Markdown语法教程)
建议:在边做靶场的时候希望同学们可以边打开咱们的社区作业专版边记录过程哦,如果是保存在本地文件然后进行复制粘贴的话到时候图片还要重新截图比较麻烦的QAQ
在安装课件中的VMware时会弹出输出许可密钥:
可以直接将以下许可密钥输入进去尝试激活:
VMware Workstation Pro 16 激活密钥:
如果不是VMware版本不是16的宝子也不用担心,直接在百度上搜索:VMware+你的版本+激活密钥
即可
1,VMware安装时,安装路径最好选择默认路径
,不要改动,更不要改动到中文路径
下。
默认安装路径一般是C:\Program Files (x86)\VMware\xxx
2,安装虚拟机是同样,虚拟机镜像以及虚拟机的存放路径最好是英文路径
,否则容易发生系统错误
3,虚拟机安装在选择客户机操作系统时,需要选择与你安装的操作系统保持一致,比如我现在想安装一个windows server2008 R2 64位
,那么我选择版本的时候就需要选择对应版本windows server 2008 r2x64
因每个人的电脑情况都不一样,所以这里只写了几种常用上的解决方法,希望能够帮助到你。
查看VMware版本,如果版本是VM15.x的版本,请先将VMware卸载,然后重新安装一个VM16.x的版本,如果没有VM16.x的安装包,可以找辅导员也就是我拿 , 安装VM16需要的许可证在本文的 <安装VMware16时弹出需要输入许可证?> 这一问题中。
打开”控制面板”,”程序”—>”启用或关闭windows功能” :
如果看到有 “Hyper-V” 功能且勾选了,则将该项取消勾选
,如果没有该项,则默认没有:
然后找到windows虚拟机监控程序平台
以及虚拟机平台
,将这两项勾选上:
然后点确定
来保存设置,保存之后会弹出重启电脑,直接重启就好了。
重启之后再打开VMware运行虚拟机试试。
先尝试前两个办法,这个办法最后尝试;
同时按住 win+R 键,会弹出运行
,输入services.msc
会打开服务
:
找到HV服务
,“右键”->”属性”->“启动类型”->”禁用”->”确定”:
保险起见,可以尝试将所有Hyper-V服务禁用掉:
然后以管理员身份运行powershell,输入bcdedit /set hypervisorlaunchtype off
然后重启电脑,再打开VMware运行虚拟机试试。
都看到这了,还等啥,站在门口,大喊一声王妈QAQ,小王火速远程,给你看看到底是什么问题。
先选中本机的文件右键,选择`复制`,然后到虚拟机里面找个位置右键,选择`粘贴`,如果可以正常复制粘贴,那么虚拟机是可以正常拖文件进去的,可以再多尝试几次。
使用远程桌面,来把本地的文件上传到虚拟机上。(windows操作系统为例)
首先需要开启远程桌面
,“开始”->”计算机”(或此电脑)->”属性”:
“远程设置”->”仅允许xxxxx”->”确定”,此时默认administrator用户是可以直接远程登录的,可以不用”选择用户”,如果需要使用其他用户登录远程,需要用管理员账号”选择用户”,这里就不赘述了:
设置好以后,在虚拟机中同时按 win+R键,输入cmd打开cmd窗口,输入ipconfig查看当前虚拟机的ip:
将虚拟机ip记下,然后回到本机,按win+R键,输入mstsc打开远程连接,点连接,输入登录虚拟机的账号密码即可:
此时,你从本机直接复制的文件,可以直接通过远程桌面,粘贴到虚拟机当中。
可以在虚拟机下载一个QQ,登录QQ,把文件发给自己,然后在虚拟机中进行下载。
快照可以简单理解为:将你安装的虚拟机的某一时刻的状态保存下来(备份了那一时刻的所有数据内容),当你想恢复到之前的状态时(比如系统崩溃了),只需要还原快照即可。
查看拍摄的快照:
恢复快照(快照还原):
注意:拍摄快照需要占用磁盘空间,在使用虚拟机拍摄快照时,不需要拍摄很多快照,一般在刚安装时先拍摄一个,后面需要时再拍摄即可。
ip就是你的计算机在互联网上的地址,可以理解为你淘宝买东西的时候你写的收货地址.
每个人只要输入公网ip就能找到对应服务器,但是内网ip是路由器通过DHCP协议分配的,只能在相同内网中才能互相访问.
因为域名更好记忆,以百度为例,你想想,百度的域名baidu.com,假设对应的公网IP是123.125.114.144,你访问的时候更记baidu.com 还是123.125.114.144呢。
不需要,咱们刚开始只需要稍微了解下http协议就行
可以去官网下载,也可以在群里下载;
官网下载网址是:Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn),最新版长下面这个样子:
咱课件提供的phpstudy是2016版本的:
phpstudy默认账号密码是:root root
默认账号密码是: root root
当然,如果你自己设置了数据库账号密码,则以你自己设置的账号密码去登录即可
你所遇到的应该是如下情况:
这种情况一般是由于系统中有一个进程(例如iis)占用了80端口,而apache也需要使用80端口,这就产生了端口冲突问题
,此时可以在phpstudy中找到:其他选项菜单 -> 环境端口检测 -> 环境端口检测
然后点击检测端口
和尝试强制关闭相关进程并启动
即可:
在网上下载CMS源代码(或者使用咱们课件中提供的源代码,没有的宝子可以找我要),将CMS源码放在phpstudy的WWW目录下(PS:建议在WWW目录中自己建一个`英文目录`对应搭建的网站,方便自己做站点管理),然后设置好网站根目录,访问安装的文件夹就可以实现快速建站。
这里以dedecms为例,手把手教你如何快速搭建一个站点QAQ
首先,我们将dedecms的源码压缩包放入WWW目录并解压:
解压后,我们来设置一下我们的网站根目录
,打开phpstusdy,其他选项菜单 -> 站点域名管理
然后,网站域名
和第二域名
都设置为127.0.0.1
(PS: 127.0.0.1
表示本地,电脑本身的意思)、端口先不用管,设置网站根目录选择到:uploads
目录,就是我们dedecms网站源码所在的目录,然后点击新增
以及保存设置并生成配置文件
最后打开浏览器,访问127.0.0.1
即可开始网站的安装啦~~ ^_^
OK,你还是点进来看了,那么翻到咱们课件PPT第四页,可以默念,可以朗读^_^,学法的目的在于希望同学们可以时刻保持安全意识和法律意识,保护好自己哦~
在登陆页面提交信息,提交到后端数据库验证,然后返回信息到其他或原有页面.
GET方式通过url传参,比如:http://xxx.com/?id=1 ;
POST方式则会将传参放到请求包的请求体当中,对于普通用户而言是不可见的,通过抓包软件如burp或者F12进行分析才能看见;
POST方式相对于GET方式传参数量可以多很多;
target属性决定表单点击提交后究竟是新打开一个页面还是当前页面跳转
环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如果我定义了这个环境变量的路径,那么当在windows系统的变量中寻找不到的时候,就会去我添加的路径去寻找对应的东西。
如果我没有把Python加入环境变量,我在cmd中不能直接运行python,因为在系统路径里面找不到python这个东西,然后加了环境变量,于是乎就会去我添加的路径查找,然后他发现了,有一个东西交python然后调用了。
教程链接地址:Java 开发环境配置 | 菜鸟教程 (runoob.com)
sqlmap官网获取:https://sqlmap.org/ 【推荐】
或者github地址:https://github.com/sqlmapproject/sqlmap
首先你得安装好python
然后打开cmd命令行,cd到sqlmap所在目录
然后使用 python sqlmap.py 运行sqlmap
在这里,主要说一个学习方法就是不要去死记一些命令,无论是sqlmap指令,还是计算机命令、代码等,去背指令没有任何意义,多用,用着用着自然而然就能打出来,指令用到不记得的时候直接去查相关使用手册就行了。
sqlmap手册:https://www.cnblogs.com/hongfei/p/3872156.html
当–level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数;
当–level参数设定为3或者3以上的时候,会尝试对User-Angent,referer进行注入。
使用参数: --flush-session,他将会刷新会话,进行测试
这也是很多宝子问的问题,在这里,我写一个保姆级教程吧,希望对宝子们有用~~注意:本教程的前提是宝子们把java环境安装并配置好环境变量哦
OK,首先,我们直接打开我发的新的burp,解压zip包,双击运行BurpSuiteLoader1.jar
然后会弹出一个页面,点击run
后,弹出第二个页面,点I Accept
接受用户协议:
然后复制激活密钥,点击NEXT
:
点击Manual activation
选择手动激活模式:
将copy request
中的代码复制到Activation request
,将Activation response
中的代码复制到Paste resoponse
,勾选上屏蔽跟新和自动运行,然后点Next
然后就可以正常使用burp了,此时我们的burp是默认监听本地的8080端口的:
Proxy SwitchyOmega
这款插件是火狐、谷歌、edge浏览器插件市场上都能够搜到的插件,直接在管理扩展的搜索框中输入Proxy SwitchyOmega
,然后安装即可:
以下以edge举例安装:
Proxy SwitchyOmega
使用:
点击新建情景模式
,然后设置一个自己喜欢的名字,点击创建
按照序号的顺序依次设置:
应用选项
保存代理设置OK,到这里我们设置了一个名叫burp_test的代理,代理的是本地的8080端口,代理的流量协议为http/https,那么我们只是设置好了代理,要如何使用呢,且先看下文:
我们先访问www.baidu.com,在没有开代理的情况下,是可以正常访问的:
此时,我们尝试去抓百度的包,首先在扩展图标点击一下,将我们的Proxy SwitchyOmega显示出来(默认是收起来的)点击小眼睛
:
接下来设置让浏览器只代理百度这个域名的数据包(如果要抓其他域名或者IP的包也同样做如下设置即可,这也是该插件的优点,可以让你只抓某个IP或域名的包,方便你分析数据包,减少其他数据包的干扰):
设置完成后我们发现访问百度失败了,这是因为浏览器没有安装burp的证书导致的:
接下来,我们安装burp的证书:
浏览器访问127.0.0.1:8080
,点击CA Certificate
下载burp的证书:
下载下来后文件名为cacert.der
,这里,有一个小细节,如果你用的是edge浏览器,你需要将证书的后缀改为.cer
,其他浏览器不需要改;
然后在edge的设置中,搜索证书
:
打开证书管理页面,然后点击导入
-> 下一步
-> 浏览
选择刚刚下载的burp证书:
然后证书被分入下列存储
选择受信任的根证书颁发机构
完成后弹出安全警告
,选择是
,即可导入成功:
此时我们再次抓百度的包,发现仍然报隐私错误,因为系统还需要安装一遍burp的证书,因此,我们直接找到我们下载的证书,直接双击:安装证书 -> 当前用户 -> 下一步
选择存储位置为受信任根证书颁发机构
,然后导入成功:
接下来再次访问百度抓包,此时能够正常加载出百度首页,burp也能够正常抓到包:
注意:如果安装系统证书和浏览器证书后抓百度的包仍然报"隐私错误",可以重启一下虚拟机或者电脑试试哦~
浏览器和服务器是直接通信的,而我们增加了代理,就把直接发送到服务器的数据发送到你设置的代理的端口。
Burp Suite代理工具是以拦截代理的方式,拦截所有通过代理的网络流量,如客户端的请求数据、服务器端的返回信息等。
Burp Suite主要拦截http和https协议的流量,通过拦截,burp Suite以中间人的方式,可以对客户端请求数据、服务端返回做各种处理,以达到安全评估测试的目的
以下以图的方式来理解代理(或者说burp抓包):
在没有设置代理的情况下,一个用户使用浏览器发起请求的流程如下:
当挂上了代理软件或者说代理服务器时,一个用户使用浏览器发起请求的流程如下:
burp上默认的端口就是8080,我们可以修改,在proxy模块option处,点击设置的端口,然后点击edit,就可以修改了,但记住一些常见的端口比如3389远程桌面这种系统使用的端口就不要使用啦,不然容易产生端口冲突问题QAQ
F12查看网页源代码,可能在页面源代码里
或者用指纹识别的平台查找,例如:云溪指纹 https://www.yunsee.cn/
通过特殊的页面查看CMS信息,比如有些CMS会在robots.txt中写明CMS的名字和版本
旁站是指同ip(或者说同服务器下的)的不同网站
C段是指公网Ip同一网段下的网站
御剑、7KB、dirsearch等这些都是优秀的目录扫描工具,其中dirsearch需要python环境支持哦~
目前主流是:Nmap,也有一些小众轻量化的扫描工具如:portscan等
控制台输入 javascript:alert(document.lastModified),如果网站是个html,但是显示的却是现在的时间,就是伪静态页面
把用户的输入当做SQL语句执行。
navicat是一款数据库管理工具,使用它我们可以清晰的看到数据库中的数据结构以及数据,能够很方便的进行查找以及数据管理。
安装与激活教程:
跟着下面这个篇文章一步步走,亲测有效~~~这里只需要注意一点,在博客里面下载navicat12,下载安装好后,先不要启动navicat12哦~,其他按照博客中的教程走即可
https://www.cnblogs.com/wei9593/p/11907307.html
order by 用于判断字段数,order by 原有的作用是对字段进行一个排序,在sql注入中用order by 来判断排序,order by 1就是对一个字段进行排序,如果一共四个字段,你order by 5 数据库不知道怎么排序,于是乎就错误了无返回值。
在sql查询中,代码比较严谨,括号和引号都得成双成对,引号内的默认是字符串不会当作SQL语句执行,所以必须闭合然后才能注入,当然有些SQL语句直接拼接,也就不用什么闭合了。
如果输出的数据有相同的,union只会输出一次,而union all都会输出。
因为如果存在SQL注入,那么and就是 和 的意思,1=1是一个恒等式,然后因为原本能够查出数据,那么两个真就是True,但是1=2肯定是不可能的,这里就会返回一个False,然后因为 和 必须两个真才返回True,所以这里拼接就不成立返回False。
可以,在常规的渗透测试中,建议都去尝试一下,根据不同的情况,去选择用 and 还是用 or。
-- 减减空格在数据库中表示“注释”的意思,在SQL注入的时候使用 -- qwe用于注释掉后面的SQL语句,使我们构造的SQL语句能够正常执行。
加qwe,首先qwe是我们随便打的字符,也可以写aaa,其作用主要是
post注入其实很简单,就是在POST传参的地方做注入,和前面课程《SQL注入的原理分析》中讲到的注入流程是一样的,只不过注入点在POST传参这个地方,就像同一个东西,只是放的位置不同。
比较常见的是:登录框,搜索框,还有一些其实是在抓包的时候,如果看到POST数据包中有可疑参数可能存在注入,也可以去尝试看看,本质就在于"试"嘛。
select username,password from users where username='admin' and password = ' 'or 1=1 -- qwe' limit 0,1
(我们来看语句逻辑,where后面是条件,username和password之间是and连接,所以两个有一个为否返回就是否,但是or 1=1,这个返回真,否 or 真=真 ,-- qwe是注释,将后面的SQL语句注释掉,防止SQL语句受到干扰。)
简单理解:在请求数据包头部(HEAD)字段做注入。
POST可以通过-r参数指定数据包也可以使用--data去跑:
*
号标记,将数据包保存为 1.txt;
python sqlmap.py -r post数据包文件名
有两种方式:
*
标记
GET传参会进行URL编码,POST传参一般不会进行编码
因为表名要用到单引号括起来,但是会被转义,单引号会被加上反斜杠对查询产生影响,所以可以使用16进制进行编码处理,16进制到了数据库中会被自动转换成字符串, 注意:16进制需要手动在前面加上 0x 。
有,可以使用嵌套子查询,比如:
'admin' 表名 可以使用以下语句来代替
(select table_name from information_schema.tables where table_schema=database() limit 0,1)
在php的配置文件php.ini中,找到magic_quotes_gpc ,如果为on就是开启,为off就是关闭。
并不是的,只要PHP的编码格式和数据库的编码格式不同,特别是字符不同的编码就可能会造成。
魔术引号默认是开启的,但是在高版本中php5.4.0以后被移除。
substr()的功能是截取某个字符串的一部分。
substr(要截取的字符串,从哪个位置开始截取,截取多少位)
例如:substr('adminadmin',1,3) --> 'adm'
当SQL语句在数据库中执行有结果的时候,返回正确的页面(这个正确的页面可以是页面上有数据,页面显示正常等),当SQL语句在数据库中执行无结果的时候,返回错误的页面(例如返回的是空白页,或者页面上显示有错误等),而我们就是通过页面的两种不同显示状态,来做注入,这就叫布尔盲注。
一个根据返回页面的正常与否,一个根据页面响应时间判断,之前的语句是相同的,只是延时增加了if()判断和延时函数sleep()。
食用方法:
if(exp1,exp2,exp3)
解释:如果exp1执行成功,那么返回exp2,如果失败,返回exp3
cookie注入简单理解就是:在请求数据包中的请求头部,Cookie字段这个地方做注入,其他流程都是一样的,只不过注入的位置不一样。
cookie注入做注入有两种方法:
OK,同学,你是不是这种情况:
如果是这种情况的话,是注入不了的,因为你在GET传参中有id=171,而cookie中传参id=171 and 1=2 ,而当前这个网站后端代码是GET和POST传参优先的,如果你GET和COOKIE传相同的参数过去,当前这个站点会先取GET传参,因此,在对这个网站做注入的时候,需要把GET中的传参删除
。
在线网站:
如果你偏移注入成功了,可以F12查看一下源代码哦~
dnslog.cn这个平台可能比较卡,需要等一会,可以多打几次,多刷新几次看看
一个dnslog平台是:dnslog.cn
另外推荐一个dnslog平台:http://dnslog.pw/login 可以不用注册,使用"创建随机ID并登录"的方式去登录。
通过子查询,将内容拼接到域名内,让load_file()去访问共享文件,访问的域名被记录,此时变为显错注入,将盲注变显错注入,读取远程共享文件,通过拼接出函数做查询,拼接到域名中,访问时将访问服务器,记录后查看日志。
load_file函数主要用于读取文件并返回输出。
不可以,因为这里其实依靠的是UNC,只有Windows有这个。
靶场提供的数据库地址(两个):
地址:den1.mssql8.gear.host
初始化库:zkaqzkaq1n
账户名:zkaqzkaq1n
密码:Rz7VjmvQ!6e~
连接地址:SQL5095.site4now.net
库名: DB_14DC259_a94
用户名:DB_14DC259_a94_admin
密码:nsqvcf96310
需要配合堆叠注入,因为要执行insert into语句。
因为在MSSQL中,要使用表名结合表对应的id来查表里的字段,因为MSSQL中表名和id是绑定的。
查用户建立的数据表
select name,id from dbo.sysobjects where xtype="U";
查询字段名
select name,id from dbo.syscolumns where id=244668;
查询当前库名
select db_name();
主要记以下几个表:
DBA_TABLES 表示DBA拥有或可以访问的所有的表
ALL_TABLES 表示某一个用户拥有或可以访问的所有的表
USER_TABLES 表示某一个用户拥有的关系表
所需权限:DBA_TABLES > ALL_TABLES >= USER_TABLES
Oracle使用查询语句时,必须符合查询语法规范,也就是说必须满足:select username from admin 这种样式,如果没有表的情况下,需要使用 dual虚表来符合语法规则:select username from dual 。
Oracle查询字段时不区分大小写,但查询数据时需要区分大小写。
查所有的表
select * from all_tables;
查当前用户的表
select * from user_tables;
查所有的字段
selet * from all_tab_columns;
查当前用户的字段
select * from user_tab_columns;
查版本
select * from v$version;
将用户的输入当做前端代码执行。
标签法:<script>alert(1)</sctipt>
事件触发:<img src="xxx" onerror=alert(1)/>
伪协议:<a href=javascript:alert(1)>123</a>
见框就插
可以,但是不建议,因为存储型XSS如果弹窗造成的影响会比较大,比如你在评论区发现一个存储型XSS,然后你插入了一个弹窗代码,那么所有浏览此评论的用户都会被弹窗。
可以插入数据的地方,比如用户注册,留言板,上传文件的文件名处,管理员可见的报错信息(会记录错误日志的地方)等。
简单理解:xss平台的代码写好了有读取别人cookie的功能,并且能够将读取到的cookie发送到xss平台,因此你在URL中添加了XSS代码,别人点击,XSS平台就能看到他的cookie。
xss平台推荐使用:xsscom.com
来自20期同学推荐的一个XSS平台:https://xssaq.com/ ,感谢大佬的提议
还有别的平台:xss8.cc xss.pt
第二,靶场提交那个地方,手机号和姓名是需要填的,填了后台机器人才会给你点击链接哟(又是一个小细节)。
有的同学可能对xss平台比较感兴趣,这里我写了一个xss-platform的搭建过程,感兴趣的话可以自己在虚拟机上搭建玩一玩哈;
不推荐搭建在公网上,如果非要搭建,请将注册功能删除掉,以及将登录的账号密码设复杂一些。
xss平台源码:https://github.com/78778443/xssplatform
windows操作系统
phpstudy快速建站软件:https://www.xp.cn/
教程步骤来自于这位大佬的博客:https://icepeak.icu/2021/03/03/da-jian-xss-ping-tai/#toc-heading-2, 在此向大佬致谢
将XSS平台源码解压到phpstudy的网站根目录:
修改源码中的配置文件config.php:
'dbHost' => '127.0.0.1', # 主机地址,如果是本机搭建,就填本机ip
'dbUser' => 'root', # 数据库用户名
'dbPwd' => 'root', # 数据库密码
'database' => 'xssplatform', # xss平台的数据库,默认是 xssplatform
'urlroot' => 'http://127.0.0.1', # url根路径,如果是本机搭建,就填本机ip
'urlrewrite' => false, # 默认就行
'filepath' => 'D:/phpstudy_pro/WWW/xssplatform-master/xssplatform-master/upload', # 改为 "xss源码的路径地址/upload"
'fileprefix' => 'http://127.0.0.1/upload', # http://主机ip/upload
保存配置后,将网站根目录指向xss平台源码所在的目录:
将XSS平台自身的数据库导入我们本地的数据库:
进入phpstudy的mysql命令行(根据自己电脑phpstudy的安装路径去找,我的路径是D:\phpstudy_pro\Extensions\MySQL5.7.26\bin),在文件栏输入cmd进入命令行,然后输入mysql -uroot -p数据库密码
:
创建一个数据库:create database xssplatform;
进入数据库:use xssplatform;
导入xss平台数据库文件:source xss平台数据库文件命令(将sql文件拖进命令行即可)
修改数据库域名:update oc_module set code=replace(code,'http://xsser.me','配置文件中设置的URL根路径')
设置伪静态: xss平台源码目录中,有一个安装说明,复制apache方式下的内容:
然后在phpstudy中,打开伪静态页面设置:管理 -> 修改 -> 伪静态,将复制的内容粘贴进框里,然后点 确定
接下来,浏览器访问http://127.0.0.1 ,搭建成功~, 注册个用户进去玩一玩:
在本地写一段含有XSS漏洞的php代码:
然后进入xss平台,获取xss攻击代码,使用攻击代码对我们的测试页面进行攻击:
至此,说明我们的xss平台搭建并且能够运用了。
既有持久也有非持久,DOM型最简单的理解方法就是通过网页自带JS操作后造成的XSS,例如本身可能有HTML实体编码,结果我们输出点因为JS会进行解码,然后我们打了编码过的字符串,绕过了HTML实体编码造成的XSS就属于DOM型。
因为document.write()它可以接受native编码,它会对经过native编码的字符串进行自动解码。
新版Chrome针对script context类型的domxss做了检测拦截
document.referer
window.name
location
innerHTML
documen.write
同时,底部有这个脑图的压缩包,有需要的同学可以直接到底部下载哈:
用户 A 在登录 D 站以后,收到了攻击者 C 发来的不明链接,用户 A 点击链接,被攻击者 C 利用用户 A 在浏览器登录 D 站时的cookie,在D站上进行一些非用户A本意的操作,比如偷偷转账、创建或删除用户、文件等,注意,这里攻击者 C 并没有直接获得用户 A 的cookie,而是利用用户 A 的浏览器进行的操作。
同学是不是在这个页面,填写好了文件路径提交之后,发现并没有创建新的php文件:
这里有个需要注意的点就是姓名
和手机号
是需要正常填写的,这样后台才会去点击你提交的链接哦:
如果正常填写了还是不行,那么同学可以检查一下你的CSRF文件,要注意将后台的地址
更改为咱们CSRF靶场的地址
,以及上传的路径是 /uploads
也就是经过实体编码后的/uploads
:
其次,上传的文件名可以稍微奇怪一些,因为靶场是有很多人同时在做滴,如果你上传一个比如1.html 、2.html
,很可能就会产生文件覆盖的问题哦,可以把文件命名成funnnytest8.html
这种奇怪一点的名字(当然不要太奇怪QAQ)
CSRF(跨站请求伪造),CSRF主要是让客户端的浏览器去访问目标站点执行一些操作。
SSRF(服务端请求伪造),SSRF主要是让服务器去发起访问,目标主要是服务器所在的内网环境。
CSRF主要是借用目标的cookie来完成一些操作,而无法直接获取目标的cookie。
XSS主要是利用恶意代码去获取目标的cookie,盗取。
用户名 | 金币 | 积分 | 时间 | 理由 |
---|---|---|---|---|
小玫瑰 | 1.60 | 0 | 2023-07-10 22:10:52 | 一个受益终生的帖子~~ |
小玫瑰 | 1.60 | 0 | 2023-07-10 22:10:49 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
信息收集脑图.zip 文件大小:0.742M (下载次数:7)
dedecms.zip 文件大小:8.647M (下载次数:3)
sqlmap-master.zip 文件大小:7.18M (下载次数:1)
web学习笔记.zip 文件大小:5.935M (下载次数:2)
xssplatform-master.zip 文件大小:0.709M (下载次数:3)
CSRF 跨站请求伪造.zip 文件大小:0.949M (下载次数:1)
© 2016 - 2024 掌控者 All Rights Reserved.