traversal.es.tst 785 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. Test directory traversal
  3. */
  4. const HTTP = tget('TM_HTTP') || "127.0.0.1:8080"
  5. let status
  6. http = new Http
  7. http.get(HTTP + "/../auth.conf")
  8. try {
  9. ttrue(!http.status)
  10. } catch (err) {
  11. ttrue(err.toString().contains('Connection reset'))
  12. }
  13. http.close()
  14. http.get(HTTP + "/../../index.html")
  15. try {
  16. ttrue(!http.status)
  17. } catch (err) {
  18. ttrue(err.toString().contains('Connection reset'))
  19. }
  20. http.close()
  21. /* Test windows '\' delimiter */
  22. http.get(HTTP + "/..%5Cauth.conf")
  23. try {
  24. ttrue(!http.status)
  25. } catch (err) {
  26. ttrue(err.toString().contains('Connection reset'))
  27. }
  28. http.close()
  29. http.get(HTTP + "/../../../../../.x/.x/.x/.x/.x/.x/etc/passwd")
  30. try {
  31. ttrue(!http.status)
  32. } catch (err) {
  33. ttrue(err.toString().contains('Connection reset'))
  34. }
  35. http.close()