My Note on Solutions.

Wednesday, January 7, 2015

DNS troubleshooting tools and tips - nslookp

if you are on Windows, dig is not there, you can do most DNS query through nslookup.

to see the DNS cache on your local server,  run “ipconfig /displayDNS”

image

same thing, ipconfig /flushDNS to purge the cache.

to see name server of a giving domain

image

to see all infomration like root server, try nslookup , set all

image

to see mx record of amazon.

image

to see the spf record?

image

what about debug information

image

to see all information

image

to see all the ips of a domain or even this history.

https://www.virustotal.com/en/domain/dl.dropbox.com/information/

image

DNS troubleshooting tools and tips - dig

To see top level Name Servers,  dig –t ns com

image

If we want to see what’s are the name server of Google by asking any top level com servers.

image

now we can ask any nameserver of google, what’s are the ip of www.google.com

image

we can also using host command to get the ip or alias information

image

we can see the alias gmail.google.com

image

if we want to see some debug information. we can put debug there

[~]dig +trace  -t mx  dropbox.com

; <<>> DiG 9.8.3-P1 <<>> +trace -t mx dropbox.com
;; global options: +cmd
.            15634    IN    NS    a.root-servers.net.
.            15634    IN    NS    b.root-servers.net.
.            15634    IN    NS    c.root-servers.net.
.            15634    IN    NS    d.root-servers.net.
.            15634    IN    NS    e.root-servers.net.
.            15634    IN    NS    f.root-servers.net.
.            15634    IN    NS    g.root-servers.net.
.            15634    IN    NS    h.root-servers.net.
.            15634    IN    NS    i.root-servers.net.
.            15634    IN    NS    j.root-servers.net.
.            15634    IN    NS    k.root-servers.net.
.            15634    IN    NS    l.root-servers.net.
.            15634    IN    NS    m.root-servers.net.
;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 29 ms

com.            172800    IN    NS    a.gtld-servers.net.
com.            172800    IN    NS    b.gtld-servers.net.
com.            172800    IN    NS    c.gtld-servers.net.
com.            172800    IN    NS    d.gtld-servers.net.
com.            172800    IN    NS    e.gtld-servers.net.
com.            172800    IN    NS    f.gtld-servers.net.
com.            172800    IN    NS    g.gtld-servers.net.
com.            172800    IN    NS    h.gtld-servers.net.
com.            172800    IN    NS    i.gtld-servers.net.
com.            172800    IN    NS    j.gtld-servers.net.
com.            172800    IN    NS    k.gtld-servers.net.
com.            172800    IN    NS    l.gtld-servers.net.
com.            172800    IN    NS    m.gtld-servers.net.
;; Received 489 bytes from 128.63.2.53#53(128.63.2.53) in 144 ms

dropbox.com.        172800    IN    NS    ns-564.awsdns-06.net.
dropbox.com.        172800    IN    NS    ns-315.awsdns-39.com.
dropbox.com.        172800    IN    NS    ns-1162.awsdns-17.org.
dropbox.com.        172800    IN    NS    ns-1949.awsdns-51.co.uk.
;; Received 198 bytes from 192.52.178.30#53(192.52.178.30) in 167 ms

dropbox.com.        3600    IN    MX    1 aspmx.l.google.com.
dropbox.com.        3600    IN    MX    10 aspmx2.googlemail.com.
dropbox.com.        3600    IN    MX    10 aspmx3.googlemail.com.
dropbox.com.        3600    IN    MX    5 alt1.aspmx.l.google.com.
dropbox.com.        3600    IN    MX    5 alt2.aspmx.l.google.com.
dropbox.com.        172800    IN    NS    ns-1162.awsdns-17.org.
dropbox.com.        172800    IN    NS    ns-1949.awsdns-51.co.uk.
dropbox.com.        172800    IN    NS    ns-315.awsdns-39.com.
dropbox.com.        172800    IN    NS    ns-564.awsdns-06.net.
;; Received 296 bytes from 205.251.194.52#53(205.251.194.52) in 21 ms

image

Wednesday, December 31, 2014

Opencart security, a must-have checklist for webmasters

Just played with the opencart 1.5.6.4, which is a very popular e-commerce solution for SMBs . and If you are tech-savy webmaster, you may know that 1.5.6.4 is pretty safe in terms of code security. before this version, you may have all kinds of issues like XSS, SQL Injection. but 1.5.6.4 is pretty safe though. 

However, code safety doesn’t means operation safety. I will show you what does this mean in 4 examples, you may have those issues already which means your customer’s credit card or sensitive information is leaking now.

Turn off Debugging for both usps and USA epay from the admin console. this is very important. (this is rule number 1)

if you turn on the debugging for usa epay in the following screen, gosh, you need pay attention .

image

if you turn on debug logging, check the system/logs folder, a file called usaepay_server_debug.txt will have all the Live credit card information and customer information.

to be worst, the hacker might just access

http://www.yoursite.com/system/logs/usaepay_server_debug.txt to see all your raw credit card information.

usaepay_server_debug.txt

http://www.yoursite.com/system/logs/error.txt to see all debug information.

Here is one real example that one hacker is pulling this file

image 

risky? though I put a fake information there. if you are not lucky, your customers’s credit card is gone, cross fingers.

 

Rule number 2, put a .htaccess file to block /system/logs access.

this is very obvious, what every issue you have , you may put sensitive information into the logs folder, like stack trace? customer information, error to running a sql statement?

put a .htaccess under system/logs with content “Deny from all”, locked down the access from public access.

this is a easy fix, definitly you should do it.

Rule number 3, check your access logs for POST requests. since most user should be get Only, some hacker might found site voluability and inject some evile scripts like webadmin.php http://cker.name/webadmin/, get is limited by the url length, definitly the hacker will send a post request to inject the blackdoor.

you can write a cron job with python script to do a daily access, and email you daily to double check those special posts, if you see special urls with POST, pay attention.

Rule Number 4, suPHP, if you run suphp as the PHP handler. double check the execution logs

suphp is fast, but it runs with a high privileged user might shoot the gun to yourself. so check the suphp logs to see which php file get executed daily.

here is one pythong script to dump out the files list daily. typicall you should only see index.php and admin/index.php, no other evil php like webadmin.php? images/index.php

image

once you have those 4 rules ready, you should be feel much safer about your website operation security. any more questions, email me and I will get back to your for more details or even do a consultation for you .

 

Thursday, December 25, 2014

Iptables rules , Drop or Reject?

By Default, Pinging is fine to both yahoo.com and Google.com

image

If we turn on the firewall, to Drop icmp to google, and Reject UDP to yahoo.com

image

then ping google by ip which is rejected by firewall policy

image

What about TCP

image

SO, Drop means pretend the port is not open, which is like a implicit denial .

Reject means explicit denial.

Friday, December 19, 2014

log4net legacy configuration

just got one legacy app with log4net early version bundled, something wrong and there is no way to see the log . here is the trick

if you use refelctor, you can see the assermbly attribute. [assembly: DOMConfigurator(ConfigFileExtension="log4net", Watch=true)]

image

then for the config file, should you yourexe.exe.log4net, you can tell from the logic

image

one sample config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="logfile.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date: %-5level – %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="FileAppender" />
    </root>
  </log4net>
</configuration>

 

Tuesday, December 16, 2014

Windows azure Mobile service, delete expired data automatically.

It turns out Azure mobile service is way more powerful than you think. I setup a simple mobile service table to hold some incoming logs.

on the table itself, I created one node.js API for insert, basically insert a timestamp in long named dt. (I found this very useful for you to delete the old data , like logs week ago)

image

then every incoming logs will be applied with the timestamp. now create another scheduler to run  daily and check to delete old logs

image

and config it to run daily

image

then in the log you will see the daily run

image

Tuesday, November 4, 2014

WordPress 4.0 on IIS 7.X, Permalinks dead loop for hybird unicoed urls

Just helped my friend did the migration from LAMP to IIS7, with fastcgi module. all smoothly, and based on the tutorial. on the platform of IIS, you don’t have the .htaccess rule, install a url rewrite2 module instead.

http://www.microsoft.com/web/gallery/install.aspx?appid=urlrewrite2

on the root of the web app, put the rewrite rules there , which will intercept all permallinks or friendly url which is neither a folder or file , and redirect them to the index.php to handle. so the code looks like this.

image

after this, one the wp settings page, you can turn on the friendly url .
image

now, when you go to some page with url like page-你好 , or post-ヤフオク, basically english and unicode in url combined, you will see server no response issue.

image

and when you put some page like hello-你好.html, on iis foder, it works. so IIS is fine, something wrong with the PHP to handle the unicode urls.

fix is here, basically , send the correct unicode url to php by the url-rewrite module. replease the request_uri with unicodeurl
http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference

here is the updated web.config for the rules.
image

after the change, all back to normal.

 
Locations of visitors to this page